当安装 Hl7.Fhir.DSTU2 和 Hl7.Fhir.R4 这两个 Nuget 包时,我们得到如下信息:
DSTU2 包似乎在使用 Hl7.Fhir.Support.Poco 版本 3.4.0 时出现问题。 如果我们自己安装 DSTU2,则所有软件包都使用 1.9.0 版本。
有没有办法在 .csproj 文件中指定子依赖项版本并将 .dll 安装在特定文件夹中?
这是我的调试文件夹中的 3.4.0 版本的 .dll
最佳答案
是的,您只需在您的项目中为传递依赖添加一个PackageReference
。 NuGet 为你依赖的每个包选择一个版本,如果你有一个包的直接引用,那么 NuGet 将始终选择这个版本,因为它的 nearest wins rule .
正如您所发现的,这不能是低于您的任何依赖项本身要求的版本,否则您会得到一个 package downgrade error .这是故意的——如果你引用 packageA
说它至少需要一个特定版本的 packageB
,那么鉴于你只能使用每个包的一个版本,这是有道理的您至少需要那个版本的 packageB
。
关于c# - 强制 Nuget 包使用特定版本的子依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68459116/