【问题标题】:Convert Visual Studio 2015 project to Visual Studio 2017?将 Visual Studio 2015 项目转换为 Visual Studio 2017?
【发布时间】:2017-08-28 21:28:38
【问题描述】:

我有一个用 VS 2015 制作的共享库项目,目标是“.NETStardard1.4”(无法升级,因为需要支持 Win10 UWP)。

VS2017 导入和构建就好了。

但是,.NET 核心命令行 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 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 构建工具?

【问题讨论】:

  • 我回答了这个问题,但我想我忘了回答部分问题,“保持运行时版本”是什么意思?
  • @JoséPedro 我的意思是我需要它来保持 .NET Standard 1.4。如果我升级它,它将停止在 Win10 UWP 上运行。
  • 将一些项目从旧的 csproj 迁移到新的 csproj 格式后,我可以建议创建一个空白项目,然后手动移动文件并读取任何引用。这比必须检查每个遗留项目设置并决定继承什么以及如何继承要容易得多。
  • 谢谢@poke,它有帮助。

标签: c# .net visual-studio-2015 .net-core visual-studio-2017


【解决方案1】:

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 具有文件通配功能,roslyn 项目系统自动将所有.cs 文件包含为Compile.resxEmbeddedResource

【讨论】:

    【解决方案2】:

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

    &gt; dotnet tool install --global Project2015To2017.Migrate2017.Tool

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

    &gt; dotnet migrate-2017 wizard "D:\Path\To\My\TestProject.csproj"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多