根据编译器标志/目标框架安装nuget软件包

时间:2018-12-24 23:35:56

标签: c# .net visual-studio msbuild nuget

我正在尝试为.NET的多个框架版本提供我的库(4.0与该问题有关)。

我的库需要异步/等待支持,因此需要nuget包“ Microsoft.Bcl.Async”。但是我只想在.NET 4.0版本中引用它,而在> = .NET 4.5中不希望引用它

有没有简单的方法可以实现这个目标?

1 个答案:

答案 0 :(得分:4)

  

根据编译器标志/目标框架安装nuget软件包

要解决此问题,可以在项目文件中使用PackageReference代替packages.config

Tools-> Options-> NuGet Package Manager-> General->Package Management-> PackageReference

然后将nuget包添加到项目中,我们可以向nuget包添加PackageReference条件,例如:

<ItemGroup>
    <!-- ... -->
    <PackageReference Include="Microsoft.Bcl.Async" Version="1.0.168" Condition="'$(TargetFramework)' == 'net40'" />
    <!-- ... -->
</ItemGroup>

查看文档Adding a PackageReference condition,了解更多详细信息。