如何在 VS 中创建 sdk 风格的 .net 框架项目?

isx*_*ker 18 .net c# csproj visual-studio

我很困惑是否可以sdk-style .net framework在 Visual Studio 中创建一个项目(更具体地说,我使用最新的 VS2019)。还是仍然需要手动操作?

<Project Sdk="Microsoft.NET.Sdk">
Run Code Online (Sandbox Code Playgroud)

我有兴趣创建一个新项目,而不是将现有项目从旧.csproj文件样式迁移到新的.csproj sdk-style. 我已经.csproj手动编辑过很多次文件了,但是超级不方便。

Jac*_*SFT 21

正如其他人所说,我们很难直接创建一个 sdk 风格的 .net 框架。

换句话说,我们必须手动完成。

可以参考以下步骤来制作。

首先,我们需要创建一个类库(.NET Standard)项目。

其次,我们需要修改csproj文件。

初始文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

您可以将其编辑为:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
     <TargetFramework>net472</TargetFramework>
  </PropertyGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

最后,你可以得到一个sdk风格的.net框架项目。

在此处输入图片说明

  • 新版(0.5.261.51392)升级助手有一个专门针对 sdk 类型升级的特殊部分,因此不再需要“提前退出”。只需选择“升级项目功能” (4认同)
  • 如果您想要“升级”现有 .NET-Framework 项目以使用 SDK 样式项目格式,但仍以 .NET Framework 为目标,您可以使用 dotnet-upgrade-assistant 工具,并在“将项目转换为 sdk 样式”步骤后退出。请参阅:https://dotnet.microsoft.com/en-us/platform/upgrade-assistant (3认同)

Joh*_*ann 6

感谢对先前答案的评论指出upgrade-assistant。以下是我使用的命令:

安装工具

$ dotnet tool install -g upgrade-assistant
Run Code Online (Sandbox Code Playgroud)

然后以交互方式运行并选择“升级项目功能 > 将项目转换为 SDK 样式 (feature.sdkstyle)”:

upgrade-assistant upgrade
Run Code Online (Sandbox Code Playgroud)

或者在 cli 上一次性执行此操作,如下所示:

upgrade-assistant upgrade MyProj/MyProj.csproj -o feature.sdkstyle
Run Code Online (Sandbox Code Playgroud)