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


当前回答

打开包管理器控制台

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

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

Update-Package -Reinstall

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

Update-Package -ProjectName 'YourProjectNameGoesHere' -Reinstall

其他回答

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

这里有另一个解决方案,如果你正在使用网站项目,或不想启用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) }

经过3个小时的搜寻和调查。

我有问题,因为我们在团队中有两个成员(使用GitHub源代码控制),因为我们没有限制文件的包发送到远程存储库,团队成员之一是发送包到服务器,我已经拉到我的本地更改。

在那之后,我有同样的问题,作为PO,我也不能发布我的API项目到服务器。

我刚刚用过的

更新-包-重新安装-在包管理控制台运行此命令

此命令将重新安装解决方案中使用的所有包。(适用于每个项目)

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

Update-Package - projectname ' project name ' -重新安装-在Package Manager控制台运行此命令

该命令将重新安装与“-ProjectName”后指定的项目相关的所有包。我认为这是更好的,因为我不得不等待半个小时重新安装所有的包在解决方案。

多亏了罗道夫·布洛克。

另外,我建议当你从远程服务器上拉更改时,按下“恢复包”按钮,Visual studio会显示这个按钮。

对于那些因为构建服务器遇到这个问题而到达这里的人,您可以创建一个MSBuild目标,运行exec命令来运行nuget恢复命令,如下所示(在这种情况下,nuget.exe在.nuget文件夹中,而不是在路径上),然后可以在构建解决方案之前立即在TeamCity构建步骤中运行

<Target Name="BeforeBuild">
  <Exec Command="..\.nuget\nuget restore ..\MySolution.sln"/>
</Target>

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

所以我简单地用了:

Update-Package -ProjectName 'NAME_OF_THE_PROJECT'