Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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_Nuget - Fatal编程技术网

C# 如何使用特定的nuget包目标?

C# 如何使用特定的nuget包目标?,c#,.net,nuget,C#,.net,Nuget,我有一个.NETFramework4.7.2项目,它需要引用一个nuget包,该包的目标是NETFramework4.5.2和NETStandard2.0。该项目还引用了其他net framework项目,因此我还不能将该项目重新定位到net标准 我正试图从net472项目中引用和2.1.1。Microsoft.Diagnostics.EventFlow.Core的net452版本有一个限制Microsoft.Extensions.Configuration.Abstractions(>=1.1

我有一个.NETFramework4.7.2项目,它需要引用一个nuget包,该包的目标是NETFramework4.5.2和NETStandard2.0。该项目还引用了其他net framework项目,因此我还不能将该项目重新定位到net标准

我正试图从net472项目中引用和2.1.1。
Microsoft.Diagnostics.EventFlow.Core的net452版本有一个限制
Microsoft.Extensions.Configuration.Abstractions(>=1.1.1&&<2.0.0)
,而的netstandard2.0版本有一个限制
Microsoft.Extensions.Configuration.Abstractions(>=2.0.1)

由于这种依赖性限制,我需要使用netstandard版本。net472应该能够同时使用net452和netstandard2.0软件包,但当一个软件包同时针对这两个软件包时,它希望在默认情况下使用net452版本


如何选择要使用的包的目标?使用
packages.config
时有一个
targetFramework
属性,但我不知道如何使用
PackageReference

因为该包既有net452又有netstandard2.0资产,而且您的目标是net472,最接近的资产是net452资产

你可以看到这个


如果要使用netstandard2.0资产,最简单的方法是通过dll引用直接引用netstandard2.0资产。

使用NuGet无法做到这一点。NuGet将使用与项目目标框架匹配的程序集。您必须直接引用netstandard程序集,而不是使用NuGet—如果使用PackageReference,这可能不会有帮助。您有关于
的更多信息吗?由于该软件包的net framework版本的依赖性限制,我需要使用net标准版本
?谢谢,我已经更新了我的问题。谢谢,我将向软件包作者提出这个问题,看看他们是否可以只添加一个net47目标,并在其中一个dotnet GitHub存储库上添加,看看是否有比直接引用特定DLL更好的解决方案。