【问题标题】:Force Nuget package to use specific version of sub dependency?强制 Nuget 包使用特定版本的子依赖项?
【发布时间】:2021-07-20 17:31:30
【问题描述】:

在安装两个 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

【问题讨论】:

  • 您是否尝试过安装所需版本的依赖包?例如,如果 X 使用特定版本的 Y,则在顶部单独安装 Y。
  • 我们做到了,如果我们使用较低版本,R4 会报错,说它的依赖性太低。

标签: c# nuget nuget-package


【解决方案1】:

是的,你只需在你的项目中添加一个PackageReference 来实现传递依赖。 NuGet 为您依赖的每个包选择一个版本,如果您直接引用某个包,那么 NuGet 将始终选择此版本,因为它的 nearest wins rule。

正如您所发现的,它的版本不能低于您的任何依赖项本身所需的版本,否则您将获得package downgrade error。这是故意的——如果你引用packageA,它说它至少需要一个特定版本的packageB,那么鉴于你只能使用每个包的一个版本,因此你至少需要那个版本的@987654326 @。

【讨论】:

    猜你喜欢
    • 2017-04-14
    • 2020-11-25
    • 1970-01-01
    • 2016-07-29
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    相关资源
    最近更新 更多