NuGet忽略依赖的更新版本

Sam*_*ing 2 visual-studio nuget nuget-package

我有两个NuGet软件包。打包一,打包二。程序包2必须具有1.0程序包版本1.0或更高版本的依赖性。

我对Package One进行了少量更改,然后将NuGet Package重建为1.0.1版本。我没有对Package Two NuGet软件包进行任何更改。我还更新了正在使用的解决方案中的Package One。

我遇到的问题是,程序包2仍在尝试查找版本1.0(旧版本)的程序包One的.dll。但是,已经安装了一个较新的版本并可以使用,就像它正在忽略它一样。

软件包2在package.nuspec文件中具有版本1.0或更高版本的软件包1的依赖关系。

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

Leo*_*SFT 5

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

正如Matt回答“ 这是NuGet的默认行为 ”:

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

因此1.0是正确的默认依赖项解析。

NuGet v2.8开始,我们可以使用其他依赖项解析算法:

尽管NuGet 2.8更改了解决依赖关系的默认行为,但它还通过程序包管理器控制台中的-DependencyVersion开关添加了对依赖关系解析过程的更精确控制。使用此开关可以将依赖项解析为最低的可能版本(默认行为),最高的可能版本或最高的次要或修补程序版本。

有关那些依赖关系解析算法的详细信息,请检查以下文档:

https://docs.microsoft.com/zh-cn/nuget/tools/ps-ref-install-package

在此处输入图片说明

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

Install-Package PackageTwo -DependencyVersion Highest
Run Code Online (Sandbox Code Playgroud)

或通过扩展Options从Manage NuGet程序包UI中选择它:

在此处输入图片说明