NuGet:通过PowerShell或CMD将软件包更新到所有项目中的特定版本

mat*_*zek 17 powershell command-line nuget

我们有一个场景,不同的团队在更大的产品的不同部分工作.有时,所有解决方案的所有Visual Studio项目都需要更新一些引用的NuGet包.作为该更新的结果,整个源树中的所有项目都应该引用相同版本的包.

有没有办法使用像PowerShell脚本这样的自动方法将特定的NuGet包更新到所有项目中的特定版本?

编辑:有没有办法以某种方式加载Visual Studio和NuGet的必要部分,以正确更新程序集引用

例:

NuGetScript Update Solution.sln PackageName -version NewVersion
Run Code Online (Sandbox Code Playgroud)

要么

NuGetScript Update PathToProjects PackageName -version NewVersion
Run Code Online (Sandbox Code Playgroud)

在Visual Studio中加载所有组件的组件太多,并通过包管理器UI手动更新它们.

Wei*_*SFT 19

请在Package Manager控制台窗口中使用以下命令行在一个解决方案中更新特定包.

Get-Project -All | Update-Package PackageName -Version newVersion

  • 除非有办法在不加载Visual Studio和所有项目的情况下加载程序包管理器控制台,否则这不是可接受的答案. (6认同)

Edd*_*SFT 6

您可以创建PowerShell脚本来搜索解决方案中的所有项目文件或packages.config文件,然后调用nuget update命令来更新软件包.

但是,在Visual Studio之外更新包时存在限制,我建议您从Visual Studio执行此操作:

update命令将下载所有新包并将其解压缩到packages文件夹中.程序集引用将在项目文件中更新,但这仅限于现有引用.如果新包具有添加的程序集,则不会将其添加为更新命令的一部分.新的包依赖项也不会添加其程序集引用.要执行完整更新,请使用Visual Studio.