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

标签 c# nuget nuget-package

当安装 Hl7.Fhir.DSTU2 和 Hl7.Fhir.R4 这两个 Nuget 包时,我们得到如下信息:

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

最佳答案

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

正如您所发现的,这不能是低于您的任何依赖项本身要求的版本,否则您会得到一个 package downgrade error .这是故意的——如果你引用 packageA 说它至少需要一个特定版本的 packageB,那么鉴于你只能使用每个包的一个版本,这是有道理的您至少需要那个版本的 packageB

关于c# - 强制 Nuget 包使用特定版本的子依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68459116/

相关文章:

c# - 为 HTTPS 配置 ASP.NET Core 2.0 Kestrel

c# - 使用额外变量的 Linq 多重连接条件

c# - 事件目录 : get groups where a user is member

nuget - 无法将 Nuget 包添加到 ASP.NET vNext 项目

dependencies - 创建 NuGet 包时不包含 packages.config 文件中的依赖项

c# - Visual Studio C++ 和 C# 的异常报告组件

nuget - 在 nuget 还原包中构建 C# 项目失败 Microsoft.ApplicationInsights

c# - 错误: Unable to load the service index for source <URL> when adding to Visual Studio

asp.net - 我可以自由地移动/选择 Nuget 包安装的脚本的自定义文件位置并仍然对其进行更新吗?

node.js - 在 VS 2015 中管理 Nuget 包灰显