强制Nuget包使用特定版本的子依赖关系?

5
安装两个Nuget包Hl7.Fhir.DSTU2和Hl7.Fhir.R4时,我们会得到类似于以下内容的东西:

enter image description here

包DSTU2似乎在使用Hl7.Fhir.Support.Poco版本3.4.0时出现了问题。 如果我们单独安装DSTU2,则所有包都使用版本1.9.0。
在.csproj文件中是否有一种指定子依赖项版本并将.dll安装在特定文件夹中的方法?
这是我调试文件夹中的3.4.0版本.dll。

enter image description here


你尝试安装所需版本的依赖包了吗?例如,如果X正在使用特定版本的Y,请单独安装Y。 - vsarunov
我们尝试过使用较低版本,但 R4 报错说它的依赖项太低。 - OTreps
1个回答

13
是的,你只需要在项目中添加一个PackageReference来处理传递依赖关系。NuGet为每个所依赖的包选择一个版本,如果你直接引用了某个包,那么由于其就近优先原则,NuGet将始终选择该版本。
不过,正如你已经注意到的那样,这个版本不能低于任何依赖项本身所需的版本,否则会出现软件包降级错误。这是有意为之的 - 如果你引用了需要至少特定版本的packageBpackageA,那么考虑到你只能使用每个包的一个版本,你至少需要那个版本的packageB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接