一次性更新NuGet包及其所有依赖项

5

我刚刚创建了一个新的带有Angular的.NET Core项目,现在已经有一些NuGet包,如“Microsoft.AspNetCore.SpaServices.Extensions”,并且有可用的更新。

当我尝试更新它时,会出现错误,提示与另一个包“Microsoft.ApNetCore.Mvc.Abstractions”存在版本冲突。要解决此问题,我需要安装或引用“Microsoft.ApNetCore.Mvc.Abstractions”2.2.0版本。但是,当我尝试安装它时,会出现类似于其他依赖项的错误信息,以此类推。

有没有办法让NuGet一次性安装或更新所有这些依赖项,而不是一个一个地安装?


你的项目使用哪个框架?是 .net core2.2 还是 .net core3.0?你是通过哪种方式更新包?我创建了一个带有 Angular 的 asp.net core 项目,但似乎上述的包并没有直接引用。 - LoLance
在Net Core 2.1中,“Microsoft.AspNetCore.SpaServices.Extensions”的更新在Nuget包管理器的更新列表中列出,其他更新未在npm中列出,但错误提示要求安装或引用它们。我尝试使用控制台和UI安装它们。 - Salvador Cruz
1个回答

5

有没有一种方法可以让NuGet一次性更新/安装所有这些依赖项,而不是我一个一个地安装它们?

通过命令行:您可以下载nuget.exe,并将其存在的路径添加到Path系统环境变量中。然后,您可以直接引用nuget.exe。之后,您可以在Package Manager Console中使用类似于nuget update YourSolution.sln的命令来更新解决方案的依赖项。更多细节请参见类似问题中Matt's answer。感谢他!

在VS IDE中:右键单击Solution Explorer中的项目名称=>Manage Nuget Packages,在Updates标签中,您可以选择Select all packagesUpdate按钮。

enter image description here

但你需要知道的一点是,你所做的更新操作并不适合这种情况。
以上内容是为了回答你有关轻松更新或安装所有依赖项的方法。但实际上,在你的项目中不建议更新Microsoft.AspNetCore.SpaServices.Extensions包。你正在开发一个针对.net core 2.1而非.net core 2.2的项目。因此,当你创建一个新的.net core2.1 with Angular project时,这些nuget包已经被设计好了模板版本为2.1.X,足以满足你的需求,无需将它们更新到.net core 2.2或更高版本。
你正在进行一个asp .net core 2.1项目,并且它依赖于Microsoft.AspNetCore.App 2.1.X,检查其依赖项,你可以找到类似于下面的东西:

enter image description here

我认为这就是为什么会抛出“版本冲突”错误信息的原因,那么在这种情况下你更新包的特殊原因是什么?你可以在这里安装 .net core 2.2 SDK。然后你可以创建一个目标为 .net core2.2 的项目,并在你的项目中引用那些版本为 2.2.x 的 AspNetCore 相关包。如果我有任何误解,请随时纠正我 :)


哦,我明白了,所以这就是为什么我得到了所有那些错误。我试图更新它们,因为需要安装最新的EntityFrameworkCore,但是由于我使用的SDK,我将安装一个旧版本。谢谢! - Salvador Cruz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接