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

标签 nuget

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

最佳答案

您可以使用nuget.exe要恢复您的包,或者安装了 NuGet 2.7 或更高版本,您只需在 Visual Studio 中编译您的解决方案,这也将恢复丢失的包。

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

nuget install packages.config

或者使用 NuGet 2.7 you can restore all packages in the solution使用命令行。

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 2.7 中 nuget 还原的信息
  • 2014/07/06 - 更新了有关 Visual Studio 中自动包还原的信息,并将答案与 NuGet 的其他更改一起更新。
  • 2014/11/21 - 更新了有关 -reinstall 的信息

关于nuget - 如何让 NuGet 安装/更新packages.config 中的所有包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6876732/

相关文章:

.net - Nuget 连接尝试失败 "Unable to load the service index for source"

c++ - 我应该/可以/必须如何处理我的 C++ 项目所依赖的 dll?

nuget - System.Net.Http.Formatting 5.2.0.0

css - 每次构建后自动在构建服务器上编译 LESS 文件

json - 如何在 nuget 包中包含 appsettings.json 配置设置?

c++ - 在 Visual Studio 2013 中链接 NuGet 库

visual-studio - 从 Visual Studio 中的符号服务器加载与正则表达式匹配的特定符号

azure - 有没有办法在不创建 csproj 的情况下安装 nuget 包?

nhibernate - NHibernate 3.2.GA 的城堡字节码提供程序会在 nuget 中提供吗?

visual-studio - 是一种在 Visual Studio 中重置 nuget 超时的方法吗?