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


当前回答

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

所以我简单地用了:

Update-Package -ProjectName 'NAME_OF_THE_PROJECT'

其他回答

在Visual Studio 2017中-当你使用IDE编译时-它会下载所有缺少的nuget包并保存在文件夹“packages”中。

但是在构建机器上编译是使用msbuild.exe完成的。在这种情况下,我下载了nuget.exe。

在执行msbuild.exe之前的每个构建过程中。它将执行-> nuget.exe restore NAME_OF_SLN_File(如果只有一个. sln文件,则可以忽略该参数)。

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

所以我简单地用了:

Update-Package -ProjectName 'NAME_OF_THE_PROJECT'

这里有另一个解决方案,如果你正在使用网站项目,或不想启用NuGet包恢复。

您可以使用包管理器控制台来枚举包中的所有包。配置文件并重新安装。

# read the packages.config file into an XML object
[xml]$packages = gc packages.config

# install each package 
$packages.packages.package | % { Install-Package -id $($_.id) -Version $($_.version) }
Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall

这是我找到的最好最简单的例子。它将重新安装在包中列出的所有块。配置,它将保留当前版本。用项目名称替换YourProjectNameGoesHere。

在最新的NuGet 2.5版本中,包管理器中现在有一个“更新全部”按钮:http://docs.nuget.org/docs/release-notes/nuget-2.5#Update_All_button_to_allow_updating_all_packages_at_once