将.NET Core 2.0类库转换为.NET Standard

时间:2017-09-07 04:00:53

标签: .net-core .net-standard

有没有办法轻松将面向.NET Core 2.0的类库转换为.NET Standard?

如果我理解正确,如果想要在针对不同.NET框架的项目中最大化类库的可重用性,例如.NET Framework,.NET Core,Xamarin等,以.NET Standard为目标是一个更好的主意 - 前提是所有必需的API都可以在.NET Standard的版本中使用。

这就是我想将我的类库从.NET Core 2.0转换为.NET Standard 1.6或.NET Standard 2.0的原因。

3 个答案:

答案 0 :(得分:46)

在项目文件中,您可以使用确切的版本将目标编译指向netstandard

Proj.csproj的示例:

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

Microsoft提供了关于定位类型的良好documentation

Dotnet Standard不是框架或库,它是一组抽象的指令:应该具有哪些功能System.ArrayStringList等等。目前,有different implementations: .NET Framework,.NET Core,Mono,Xamarin,Windows Phone。这意味着不同的实现可以重新编译和重用您的库netstandard。对于NuGet包来说,这是一个非常好的选择。

您可以使用这些版本并找到库所需的最小功能集。每个Dotnet标准都扩展了以前版本的功能。因此,选择目标版本越少,您的库将支持的平台就越多。

答案 1 :(得分:32)

您可以编辑csproj文件(可以通过右键单击项目文件在VS内部完成)并更改

<TargetFramework>netcoreapp2.0</TargetFramework>

<TargetFramework>netstandard2.0</TargetFramework>

答案 2 :(得分:0)

  1. 转到项目文件夹
  2. 打开.csproj文件
  3. 替换目标框架

    netcoreapp2.2 netstandard2.0

看这张照片更清晰

enter image description here