.net core 将.NET核心2.0类库转换为.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标准

如果我理解正确,如果希望在针对不同.NET框架(如.NET Framework、.NET Core、Xamarin等)的项目中最大限度地提高类库的可重用性,最好针对.NET标准——前提是所有必需的API都在将要针对的.NET标准版本中可用


这就是我希望将类库从.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标准都扩展了以前版本的功能。因此,选择的目标版本越少,库支持的平台就越多

  • 转到项目文件夹
  • 打开.csproj文件
  • 替换你的目标框架

    netcoreapp2.2netstandard2.0

  • 看这张图片更清楚


    包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>
    ...