【问题标题】:Install nuget packages based on compiler flags / Target framework根据编译器标志/目标框架安装 nuget 包
【发布时间】:2018-12-24 23:35:55
【问题描述】:

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

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

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

【问题讨论】:

  • 您使用的是什么版本的 Visual Studio?下面的答案需要更新的版本

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


【解决方案1】:

根据编译器标志/目标框架安装 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 了解更多详情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    相关资源
    最近更新 更多