NuGet 忽略较新版本的依赖项

2023-12-31

我有两个 NuGet 包。套餐一、套餐二。包二需要具有包一版本 1.0 或更高版本的依赖项。

我对 Package One 做了一个小改动,并将 NuGet Package 重新构建为 1.0.1 版本。我没有对包二 NuGet 包进行任何更改。我还在我正在使用的解决方案中更新了包一。

我遇到的问题是,包二仍在尝试查找版本 1.0(旧版本)包一的 .dll。然而,已经安装了新版本并且可以使用,就像它忽略它一样。

包二依赖于包一的 1.0 或更高版本package.nuspec file.

有什么办法可以解决这个问题吗?


有什么办法可以解决这个问题吗?

正如马特回答的那样“这是 NuGet 的默认行为":

对于 NuGet 2.5 及更高版本,如果已经满足依赖项版本,则在其他包安装期间不会更新依赖项。

所以 1.0 是正确的默认依赖解析。

Since NuGet v2.8 https://learn.microsoft.com/en-us/nuget/release-notes/nuget-2.8,我们可以使用其他依赖解析算法:

尽管 NuGet 2.8 更改了解析的默认行为 依赖项,它还增加了对依赖项的更精确的控制 通过包中的 -DependencyVersion 开关进行解析过程 经理控制台。该开关可以解决对 最低可能版本(默认行为),最高可能版本 版本,或最高次要版本或补丁版本。

关于这些依赖解析算法的详细信息,请查看以下文档:

https://learn.microsoft.com/en-us/nuget/tools/ps-ref-install-package https://learn.microsoft.com/en-us/nuget/tools/ps-ref-install-package

要解决此问题,您可以在程序包管理器控制台中使用以下命令:

Install-Package PackageTwo -DependencyVersion Highest

或者通过扩展从管理 NuGet 包 UI 中选择它Options:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NuGet 忽略较新版本的依赖项 的相关文章

随机推荐