在多标记.NET Standard类库时,如何指定不同的依赖项和符号?

时间:2017-03-30 07:52:22

标签: .net-core appsettings .net-standard

使用project.json,可以针对不同的目标框架,为每个目标框架指定不同的依赖关系和条件编译符号。

我需要使用.csproj项目格式对.NET Standard类库执行相同的操作。我知道how to target multiple frameworks,但是你如何为每个?

指定不同的依赖关系和条件编译符号

(如果"条件编译"不清楚,我需要能够在代码中指定预处理程序指令,例如#if NET452。)

这个有用的好例子是处理appsettings时。使用完整的.NET Framework,您需要引用System.Configuration.dll并完成ConfigurationManager.NET Core configuration是一个完全不同的野兽。

1 个答案:

答案 0 :(得分:1)

The accepted answer from your previous question which you linked to已有答案:<ItemGroup>Condition进行$(TargetFramework)测试。从答案中略微修改了代码:

<ItemGroup Condition="'$(TargetFramework)' == 'net452'">
  <PackageReference Include="Microsoft.Azure.DocumentDB" Version="1.12.0" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'netstandard1.6'">
  <PackageReference Include="Microsoft.Azure.DocumentDB.Core" Version="1.1.0" />
</ItemGroup>

对于预处理程序指令,您无需执行任何操作。像NET452NETSTANDARD1_6这样的指令是自动定义的。