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

有没有一种方法可以很容易地将针对.NET Core 2.0的类库转换为.NET Standard?

如果我理解正确,如果一个人想最大限度地提高类库在针对不同类型的项目中的可重用性。NET 框架,例如。NET 架构,。NET 核心,Xamarin 等等,这是一个更好的主意,目标。NET 标准——前提是所有必需的 API 都可以在。将成为目标的。

这就是为什么我要将我的类库从。NET 核心2.0到。NET 标准1.6或。NET 标准2.0。

35814 次浏览

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

<TargetFramework>netcoreapp2.0</TargetFramework>

<TargetFramework>netstandard2.0</TargetFramework>

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

Proj.csproj的例子:

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

Microsoft 提供了关于目标类型的良好 文件

Dotnet 标准不是一个框架或库,它是一组抽象的指令: 什么功能应该具有 System.ArrayStringList等等。目前,有 不同的实施方法:。NET 架构,。NET Core,Mono,Xamarin,Windows Phone.这意味着不同的实现可以针对 netstandard重新编译和重用库。对于 NuGet 软件包来说,这是一个非常好的选择。

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

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

    Netcoreapp2.2 TO < strong > netstandard 2.0

看这张图片更清楚

enter image description here

我对这个话题的看法是。我必须转换已经写入的库。Net Core 3.1和5.0。打开解决方案或将项目添加到当前。Net Standard 解决方案,它不会显示。净标准期权。 原因是你有2个引用更新,以使其工作。中的目标框架。Csproj 文件。例如,切换到。Net Standard 2.1我按以下方式修改了该文件:

  <PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>

其次,在“解决方案”中更改项目类型引用(。Sln 文件)用任何编辑器打开它,否则它也不会识别它。指南。净标准2.1是9A19103F-16F7-4668-BE54-9A1E7A4F7556。如果您有一个不同版本的标准,诀窍是添加一个新的项目,检查项目类型的 GUID,并在解决方案文件中替换它。

EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = ...
EndProject