如何让NuGet安装/更新packages.config中的所有包?

发布时间 2023-11-02 20:45:49作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=如何让NuGet安装/更新packages.config中的所有包?

我有一个包含多个项目的解算方案。大多数第三方引用都缺失了,但每个项目都有packages.config文件。如何让NuGet安装/更新所有需要的包?是否需要通过命令行对每个项目进行操作?


你可以使用 nuget.exe 来还原你的包,或者在安装了 NuGet 2.7 或更高版本的情况下,只需在 Visual Studio 中编译解决方案,这也将还原缺失的包。

对于 nuget.exe,你可以为每个项目运行以下命令。

nuget install packages.config

或者,使用 NuGet 2.7,你可以在命令行中使用以下命令还原解决方案中的所有包。

nuget restore YourSolution.sln

这两种方法都会下载包。当你运行此命令时,项目文件不会被修改,因此项目应该已经引用了 NuGet 包。如果不是这种情况,则可以使用 Visual Studio 安装包。

在 NuGet 2.7 及更高版本中,Visual Studio 将在构建解决方案时自动还原缺失的 NuGet 包,因此不需要使用 nuget.exe。

要更新解决方案中的所有包,请首先还原它们,然后可以使用 nuget.exe 更新包,也可以从 Visual Studio 中的“包管理器控制台”窗口更新包,或者最后使用“管理包”对话框。

从命令行中,您可以将解决方案中的包更新到 nuget.org 上可用的最新版本。

nuget update YourSolution.sln

请注意,这将不会运行任何 NuGet 包中的 PowerShell 脚本。

从 Visual Studio 中,您可以使用“包管理器控制台”(Package Manager Console) 来更新包。这有一个好处,即任何 PowerShell 脚本都将作为更新的一部分运行,而使用 nuget.exe 则不会运行它们。以下命令将更新每个项目中的所有包到 nuget.org 上可用的最新版本。

Update-Package

您也可以将此限制为一个项目。

Update-Package -Project YourProjectName

如果您想将包重新安装为先前安装的版本,则可以使用 -reinstall 参数和 Update-Package 命令。

Update-Package -reinstall

您也可以将此限制为一个项目。

Update-Package -reinstall -Project YourProjectName

-reinstall 选项将首先卸载包,然后将其重新安装到项目中。

或者,您可以使用“管理包”对话框更新包。

更新:

  • 2013/07/10 - 更新了有关 nuget restore 的信息,适用于 NuGet 2.7
  • 2014/07/06 - 更新了有关 Visual Studio 中自动包还原的信息,并更新了答案以反映其他 NuGet 更改。
  • 2014/11/21 - 更新了有关 -reinstall 的信息。