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

我正在尝试为.NET的多个框架版本提供我的库(4.0与该问题有关).
 
我的库需要异步/等待支持,因此需要nuget包“ Microsoft.Bcl.Async”.但我只想在.NET 4.0版本中引用它,而在> = .NET 4.5中不希望引用它

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

解决方法:

Install nuget packages based on compiler flags / Target framework

若要解决此问题,您可以在项目文件中使用PackageReference而不是packages.config.

工具->选项-> NuGet程序包管理器->常规->程序包管理-> PackageReference

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

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

有关更多详细信息,请参见文档Adding a PackageReference condition.

上一篇:从同一个visual c#项目创建两个(稍微)不同的可执行文件


下一篇:c# – 如何在更改存储库路径后重置HintPath