是否将Visual Studio 2015项目转换为Visual Studio 2017



我有一个在VS 2015中创建的共享库项目,目标是".NETStardard1.4"(无法升级,因为需要支持Win10 UWP(。

VS2017导入和构建这些都很好。

然而,.NET核心命令行dotnet build表示The imported project "C:Program Filesdotnetsdk2.0.0MicrosoftPortablev5.0Microsoft.Portable.CSharp.targets" was not found

我使用VS2017创建了一个新的.NET Stardard 1.4类库项目。.vcproj文件的内容完全不同,例如,第一行说<Project Sdk="Microsoft.NET.Sdk">,而对于VS2015创建的项目,它说<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">。命令行dotnet build构建了VS2017创建的项目。

问题是,如何将我的.NET Stardard 1.4项目从VS2015转换为VS2017(保留运行时版本(,以启用这些命令行.NET Core构建工具?

IIRC,Microsoft.Portable.CSharp.targets用于PCL项目。PCL项目中对.NET Standard的支持已被弃用。

在VS 2017中使用新项目系统的一个简单的.NET Standard 1.4项目如下所示:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.4</TargetFramework>
</PropertyGroup>
</Project>

请注意,CPS具有文件globbing功能,roslyn项目系统会自动将所有.cs文件包括为Compile,将.resx包含为EmbeddedResource

CsprojToVs2017将现有的csproj转换为新格式,缩短了项目文件,并使用了Visual Studio 2017中所有漂亮的新功能。假设你安装了.NET Core 2.1+,你可以在命令行上运行:

> dotnet tool install --global Project2015To2017.Migrate2017.Tool

这将安装该工具,以便您在任何您想要的地方使用它。然后,您可以调用该工具,如下例所示。

> dotnet migrate-2017 wizard "D:PathToMyTestProject.csproj"

最新更新