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

OTr*_*eps 5 c# nuget nuget-package

安装两个 Nuget 包 Hl7.Fhir.DSTU2 和 Hl7.Fhir.R4 时,我们得到如下内容:

在此输入图像描述

DSTU2 包在使用 Hl7.Fhir.Support.Poco 版本 3.4.0 时似乎存在问题。如果我们单独安装 DSTU2,则所有软件包都使用版本 1.9.0。

.csproj 文件中有没有办法指定子依赖项版本并将 .dll 安装在特定文件夹中?

这是我的调试文件夹中的 3.4.0 版本 .dll

在此输入图像描述

rbe*_*485 14

是的,您只需PackageReference在项目中添加一个即可实现传递依赖。NuGet 会为您依赖的每个包选择一个版本,如果您直接引用某个包,则 NuGet 将始终根据其最接近的获胜规则选择该版本。

正如您所发现的,这不能是比您的任何依赖项本身要求的版本更低的版本,否则您会收到软件包降级错误。这是故意的 - 如果您引用packageA它至少需要特定版本的packageB,那么鉴于您只能使用每个包的一个版本,那么您至少需要该版本的packageB.