我有两个 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(使用前将#替换为@)