更新解决方案中所有项目的nuget包

Kni*_*Fox 32 .net nuget nuget-package

我有一个.net解决方案(比如说A)有多个项目(比如B,C,D).我想更新解决方案中所有项目的所有nuget包.我知道我可以使用命令行更新nuget包,但是将路径传递给packages.config

nuget update A/B/packages.config
Run Code Online (Sandbox Code Playgroud)

有没有办法使用命令行更新文件夹A中所有packages.configs的包,而无需单独指定它们?(我知道这可以从视觉工作室内部完成.)像

nuget update A/*/packages.config
Run Code Online (Sandbox Code Playgroud)

Max*_*ime 36

NuGet文档中所示,您可以键入:

Update-Package
Run Code Online (Sandbox Code Playgroud)

这将 :

将当前解决方案的所有项目中的所有包更新到最新版本.

要打开包管理器控制台:

工具> NuGet包管理器>包管理器控制台

现在,为了只有一个所有包的实例,我在我的解决方案文件夹中有一个名为的文件nuget.config 包含:

<configuration>
  <config>
    <add key="repositoryPath" value="..\Path\To\My\Packages" />
  </config>
</configuration>
Run Code Online (Sandbox Code Playgroud)

您可能需要重新加载解决方案才能使其正常工作.

  • OP 要求提供命令行解决方案,但这不是。Ekk 的帖子看起来是命令行更新恢复然后将解决方案中的所有包更新到最新版本的正确解决方案。 (2认同)

cla*_*reb 19

您已使用命令行示例,但您的问题并未说明是否需要命令行答案.如果您不需要命令行,可以在解决方案资源管理器中右键单击解决方案,然后选择管理解决方案的NuGet包 ...这将显示一个对话框,您可以在其中进行选择.除此之外,你需要在这个时间点写一个脚本(据我所知).


Ekk*_*Ekk 9

首先,您必须恢复所有包,nuget restore solution_file.sln然后通过执行将它们更新到最新版本nuget update solution_file.sln.

阅读有关nuget命令行的更多信息