将 Visual Studio 2015 项目转换为 Visual Studio 2017?

4

我有一个使用VS 2015创建的共享库项目,目标显示为“.NET Standard1.4”(无法升级,因为需要支持Win10 UWP)。

VS2017可以导入和构建该项目。

然而,.NET Core命令行dotnet build报错:The imported project "C:\Program Files\dotnet\sdk\2.0.0\Microsoft\Portable\v5.0\Microsoft.Portable.CSharp.targets" was not found

我已经使用VS2017创建了一个新的.NET Standard 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 Standard 1.4项目从VS2015转换到VS2017(保留运行时版本),以启用这些命令行.NET Core构建工具呢?


我回答了这个问题,但我觉得我忘记回答其中的一部分了,你所说的“保留运行时版本”是什么意思? - José Pedro
@JoséPedro 我的意思是我需要它保持 .NET Standard 1.4 版本。如果我升级它,它将无法在 Win10 UWP 上运行。 - Soonts
3
我已经将一些项目从旧的csproj格式迁移到新的csproj格式,我的建议是创建一个空白项目,然后手动移动文件并重新添加任何引用。这比浏览每个遗留项目设置,并决定要携带哪些内容和如何携带要容易得多。 - poke
谢谢@poke,帮了我很大的忙。 - Soonts
2个回答

1
我记得,在PCL项目中使用Microsoft.Portable.CSharp.targets。PCL项目对.NET Standard的支持正在被弃用。
在VS 2017中,使用新项目系统创建一个简单的.NET Standard 1.4项目如下:
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <TargetFramework>netstandard1.4</TargetFramework>
    </PropertyGroup>
</Project>

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

0

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

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

这将为您安装工具,以便您可以在任何地方使用它。然后,您可以按照下面的示例调用该工具。

> dotnet migrate-2017 wizard "D:\Path\To\My\TestProject.csproj"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接