2016-09-19 108 views
16

我们有一个场景,其中不同团队在较大产品的不同部分上工作。有时候,所有解决方案的所有Visual Studio项目都需要获取更新的一些被引用的NuGet包。作为该更新的结果,整个源代码树中的所有项目都应引用相同版本的软件包。NuGet:通过PowerShell或CMD将软件包更新到所有项目中的特定版本

有没有办法在所有项目中更新特定NuGet包为一个特定版本使用一些自动进场的PowerShell脚本

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

实施例:

NuGetScript Update Solution.sln PackageName -version NewVersion 

NuGetScript Update PathToProjects PackageName -version NewVersion 

有太多的部件加载所有这些在Visual Studio中,并通过包管理UI手动更新它们。

+0

你能举个例子说明你想做什么吗? – saftargholi

回答

7

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

然而,有一个限制,当更新包的Visual Studio之外,我会建议你从Visual Studio这样做:

update命令将下载并提取所有新的软件包到 包文件夹。程序集引用将在项目 文件中更新,但是这仅限于现有引用。如果新的程序包 已添加程序集,则不会将其添加为 更新命令的一部分。新的软件包依赖关系也不会添加它们的 程序集引用。要使用Visual Studio执行完整更新。

8

请在包管理器控制台窗口中使用以下命令行来更新一个解决方案中的特定包。

Get-Project -All |更新包PACKAGENAME -Version NEWVERSION

+0

如何从PowerShell调用此命令? –

+0

这是包管理器控制台命令,需要在Visual Studio中的包管理器控制台窗口中运行。 –

+0

这应该是被接受的答案。 – UserControl

相关问题