2017-09-07 103 views
7

有沒有一種方法可以輕鬆地將以.NET Core 2.0爲目標的類庫轉換爲.NET Standard?將.NET Core 2.0類庫轉換爲.NET標準

如果我的理解正確,如果想要最大限度地提高類庫在面向不同.NET框架的項目中的可重用性,例如.NET Framework,.NET Core,Xamarin等,如果所有必需的API都可以在.NET Standard版本中使用,那麼定位.NET標準是一個更好的主意。

這就是爲什麼我想將我的類庫從.NET Core 2.0轉換爲.NET Standard 1.6或.NET Standard 2.0的原因。

回答

9

在項目文件中,你可以點目標編譯到netstandard與確切的版本。

Proj.csproj例子:

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

微軟提供了良好的documentation定位類型。

Dotnet標準不是一個框架或一個庫,它是一組抽象的指令:什麼功能應該有System.Array,String, List等等。目前有different implementations: .NET Framework,.NET Core,Mono,Xamarin,Windows Phone。這意味着不同的實現可以重新編譯和重用您的庫,目標是netstandard。對於NuGet包來說這是一個非常好的選擇。

您可以玩這些版本並找到您的圖書館所需的最小功能集。每個Dotnet標準都擴展了以前版本的功能。因此,選擇的目標版本越少,圖書館將支持的平臺就越多。

7

您可以編輯的csproj文件(可以在裏面VS通過在項目文件上右鍵點擊來完成),並更改

<TargetFramework>netcoreapp2.0</TargetFramework> 

<TargetFramework>netstandard2.0</TargetFramework>