我有一个包含多个项目的解决方案。大多数第三方引用都缺失了,但是有一些包。每个项目的配置文件。我如何得到NuGet安装/更新所有需要的包?这需要通过命令行为每个项目完成吗?


当前回答

现在Nuget包管理器控制台在Visual Studio 2012给你一个“恢复”按钮,一旦它发现任何包没有安装,但在Package .config。 很棒的功能!

其他回答

我尝试了Update-Package -重新安装,但它在一个包上失败,并停止处理解决方案中所有剩余的项目包。

我最终创建了枚举所有包的脚本。对每个项目/包执行Update-Package -重新安装-ProjectName prj -Id pkg。

希望对大家有所帮助:

$files = Get-ChildItem -Recurse -Include packages.config;

[array]$projectPackages = @();
$files | foreach { [xml]$packageFile = gc $_; $projectName = $_.Directory.Name; $packageFile.packages.package.id | foreach { $projectPackages += @( ,@( $projectName, $_ ) ) } }

$projectPackages | foreach { Update-Package -Reinstall -ProjectName $_[0] -Id $_[1] }

编辑: 这是我犯的一个错误: Update-Package:无法找到'EntityFramework.BulkInsert-ef6'包。在执行安装或更新之前,必须还原现有包。 手动运行 更新-包-重新安装-ProjectName my_prj -Id EntityFramework。BulkInsert-ef6 工作得很好。

打开包管理器控制台

视图->其他Windows -> Package Manager Console

重新安装当前解决方案all PROJECTS中的所有包:

Update-Package -Reinstall

重新安装当前解决方案的SPECIFIC PROJECT中的所有包(感谢unarity和ashes999):

Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall

现在Nuget包管理器控制台在Visual Studio 2012给你一个“恢复”按钮,一旦它发现任何包没有安装,但在Package .config。 很棒的功能!

不知道从什么时候开始,但在VS2019中你可以用一种更简单的方式来做:

在解决方案资源管理器中右键单击解决方案 为解决方案选择管理Nuget包 有4个选项卡,浏览,安装,更新,合并 合并显示是否有任何项目使用不同版本的包(在大多数情况下,这就是为什么我们要更新所有的包) “更新”显示任何项目中是否有可用的更新。选择全部并单击更新,任务将完成。

在VS2012 V11中,如果我在行的末尾使用“-重新安装”,它就不起作用了。

所以我简单地用了:

Update-Package -ProjectName 'NAME_OF_THE_PROJECT'