【问题标题】:Can one class library project be compiled as .net standard and .net framework?一个类库项目可以编译为.net标准和.net框架吗?
【发布时间】:2018-06-28 03:38:54
【问题描述】:

我有一个当前为 .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 类库编译类库(假设类库不使用两者都不支持的任何依赖项)?

【问题讨论】:

    标签: .net .net-standard


    【解决方案1】:

    简而言之:

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

    当您构建时,这将分别创建每个目标。如果您使用自动 nupkg 生成 (&lt;GeneratePackageOnBuild&gt;True&lt;/GeneratePackageOnBuild&gt;),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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多