在许多VS解决方案上自动执行nuget update-package操作

时间:2016-03-16 11:57:59

标签: visual-studio tfs nuget nuget-package

我有10多个引用nuget包的Visual Studio解决方案。 当我决定在每个解决方案中更新该软件包时,手动打开每个解决方案需要花费很长时间,更新其软件包并签入对TFS的所有更改。我想"自动化"这个过程有一个批处理操作代表我做。

我已经通过命令行对nuget.exe进行了一些实验,但它并不关心TFS只读文件:它会覆盖我的文件内容而不检出它们所以这种方式似乎不是最好的方法。

实现目标的任何其他建议?

2 个答案:

答案 0 :(得分:2)

您可以使用nuget update命令执行此操作。即使您在VS外部运行命令,VS / TFS也可以检测到这些更改。通常,只有" packages.config"文件将在nuget包更新期间更新。

更新: 以下是一个简单的代码,用于查找给定路径下的解决方案文件并更新解决方案的nuget包,然后通过TFS PowerShell CommandLets检查挂起的更改(您需要安装" TFS Power Tool& #34;使用此命令行开关)。您可以根据自己的情况进行更新。

param([String]$dirpath)

add-pssnapin Microsoft.TeamFoundation.PowerShell;

Get-ChildItem -Path $dirpath -Filter *.sln -Recurse | ForEach-Object { & nuget update $_.FullName 2>1;  cd $_.Directory; get-tfspendingchange; new-tfschangeset}

将代码保存为powershell脚本,并使用参数" -dirpath yoursolutionpath"从Windows PowerShell运行它。它将运行如下: enter image description here

答案 1 :(得分:-2)

下载Nuget Comanline

nuget.exe restore YourSolution.sln 
nuget.exe update YourSolution.sln 

Nuget Docs