有没有办法轻松将面向.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的原因。
答案 0 :(得分:46)
在项目文件中,您可以使用确切的版本将目标编译指向netstandard
。
Proj.csproj
的示例:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.6</TargetFramework>
</PropertyGroup>
</Project>
...
Microsoft提供了关于定位类型的良好documentation。
Dotnet Standard不是框架或库,它是一组抽象的指令:应该具有哪些功能System.Array
,String
,List
等等。目前,有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)