可以将一个类库项目编译为.net标准和.net框架吗?

时间:2018-01-18 23:23:17

标签: .net .net-standard

我有一个目前为.Net 4.0和.Net 4.5编译的项目。我还有一个使用.Net Core 2.0的不同项目。

它们之间共享代码,如果我可以创建.Net Standard 2.0类库,那将非常有用,但我们仍然需要支持.Net Framework 4.0。

有没有办法为.Net Framework 4.0和.Net Standard 2.0类库编译类库(假设类库没有使用任何两个都不支持的依赖项) ?

1 个答案:

答案 0 :(得分:1)

简而言之:

<TargetFrameworks>net40;netstandard2.0</TargetFrameworks>

构建时,这将分别创建每个目标。如果您使用自动nupkg生成(<GeneratePackageOnBuild>True</GeneratePackageOnBuild>),则nupkg将包含所有目标。如果需要为每个事物配置不同的内容,可以在构建文件中测试TargetFramework变量,该变量将按目标单独应用。这可用于添加不同的引用或其他配置选项,例如:

  <PropertyGroup Condition="'$(TargetFramework)' == 'net20'">
    <FeatureServiceModel>false</FeatureServiceModel>
  </PropertyGroup>
  <PropertyGroup Condition="'$(TargetFramework)' == 'netstandard1.3'">
    <DefineConstants>$(DefineConstants);COREFX</DefineConstants>
    <ImportLibs>core</ImportLibs>
    <FeatureServiceModel>false</FeatureServiceModel>
  </PropertyGroup>