.net core 将.NET核心2.0类库转换为.NET标准
有没有一种方法可以轻松地将以.NET Core 2.0为目标的类库转换为.NET标准 如果我理解正确,如果希望在针对不同.NET框架(如.NET Framework、.NET Core、Xamarin等)的项目中最大限度地提高类库的可重用性,最好针对.NET标准——前提是所有必需的API都在将要针对的.NET标准版本中可用.net core 将.NET核心2.0类库转换为.NET标准,.net-core,.net-standard,.net Core,.net Standard,有没有一种方法可以轻松地将以.NET Core 2.0为目标的类库转换为.NET标准 如果我理解正确,如果希望在针对不同.NET框架(如.NET Framework、.NET Core、Xamarin等)的项目中最大限度地提高类库的可重用性,最好针对.NET标准——前提是所有必需的API都在将要针对的.NET标准版本中可用 这就是我希望将类库从.NET Core 2.0转换为.NET Standard 1.6或.NET Standard 2.0的原因。您可以编辑csproj文件(可以在VS中通过
这就是我希望将类库从.NET Core 2.0转换为.NET Standard 1.6或.NET Standard 2.0的原因。您可以编辑csproj文件(可以在VS中通过右键单击项目文件完成)并进行更改
<TargetFramework>netcoreapp2.0</TargetFramework>
netcoreapp2.0
到
netstandard2.0
在项目文件中,您可以使用确切版本将目标编译指向netstandard
项目csproj
的示例:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.6</TargetFramework>
</PropertyGroup>
</Project>
...
netstandard1.6
...
Microsoft提供了有关目标类型的良好信息
Dotnet标准不是一个框架或一个库,而是一组抽象的指令:应该具有哪些功能System.Array
,String
,List
,等等。目前,有.NETFramework、.NETCore、Mono、Xamarin、WindowsPhone。这意味着不同的实现可以针对netstandard
重新编译和重用您的库。对于NuGet软件包来说,这是一个非常好的选择
您可以使用这些版本并找到库所需的最小函数集。每个Dotnet标准都扩展了以前版本的功能。因此,选择的目标版本越少,库支持的平台就越多
包Microsoft.AspNetCore.All 2.0.0支持:netcoreapp2.0(.netCoreAppp,Version=v2.0),在我删除包引用后,它说静态主方法找不到,它工作正常,但它导致了更多问题,比原始警告更糟:D。顺便说一句,我相信我的.net core应用程序是2.1而不是2.0,即“netcoreapp2.1”。从.net standard转换为.net coreI时,它可以工作。在进行此更改之后,“Properties”中的“Target Framework”为空。这会导致任何负面冲突吗?虽然.Net标准不是框架,但您仍然可以在project.csproj文件的标记或项目的属性->目标框架下拉框中设置它。命名东西很难!
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.6</TargetFramework>
</PropertyGroup>
</Project>
...