Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于编译器标志/目标框架安装nuget软件包_C#_.net_Visual Studio_Msbuild_Nuget - Fatal编程技术网

C# 基于编译器标志/目标框架安装nuget软件包

C# 基于编译器标志/目标框架安装nuget软件包,c#,.net,visual-studio,msbuild,nuget,C#,.net,Visual Studio,Msbuild,Nuget,我试图为.NET的多个框架版本提供我的库(4.0与此问题相关)。 我的库需要异步/等待支持,因此需要nuget包“Microsoft.Bcl.async”。但我只想在.NET4.0版本中引用它,而不想在>=.NET4.5版本中引用它 有什么简单的方法可以实现这个目标吗 基于编译器标志/目标框架安装nuget软件包 要解决此问题,可以在项目文件中使用PackageReference而不是packages.config 工具->选项->NuGet软件包管理器->常规->软件包管理->软件包参考

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

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

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

基于编译器标志/目标框架安装nuget软件包

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

工具
->
选项
->
NuGet软件包管理器
->
常规->软件包管理
->
软件包参考

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

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


查看文档以了解更多详细信息。

您使用的是哪个版本的visual studio?下面的答案需要更新的版本