如何将.NET PCL项目迁移到.NET Standard 2.0

时间:2017-08-20 11:50:41

标签: .net .net-standard-2.0

我有一个PCL和.NET Core 1.0项目的解决方案。 一旦更新到VS 2017 15.3,当我导航到项目属性时,我有一个.NET Core 1.0项目的“应用程序”页面,我可以从1.0更改为2.0。不幸的是,PCL项目只显示标准的“库”页面,其中包含一个额外的“了解更多”链接,可以将我导航到“.NET标准”网页,但无法选择迁移到.NET Standard 2.0。所有其余的都是一样的,它只允许我改变通常的目标。没有提及与.NET Standard相关的任何其他内容。

我是否必须自己重新创建.NET Standard 2.0项目?

1 个答案:

答案 0 :(得分:1)

对于pcl:

  • 创建.Net标准库项目

  • 手动修改csproj文件到Multi Target:

    假设你的pcl是:portable-net45 + win8 + wpa81 + wp8

     <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
         <TargetFrameworks>netstandard2.0;portable-net45+win8+wpa81+wp8</TargetFrameworks>
       </PropertyGroup>
    

    注意TargetFrameworks不是TargetFramework

  • 通过您的来源复制

  • 安装nuget软件包,或者在csproj中手动引用它们,例如:

    <ItemGroup>
       <PackageReference Include="Microsoft.CSharp" Version="4.3.0" />
    </ItemGroup>
    
  • 假设pcl编译时没有错误,在netstandrd2中你可能会发现错误,根据需要修改你的来源。

  • 修改单元测试项目,并确保在两个环境中都通过了所有测试。

相关问题