如何从命令行更新项目中的单个nuget包?

时间:2015-01-16 22:25:45

标签: command-line nuget tfsbuild

我正在尝试使用多个依赖项更新csproj中的单个包。也就是说,packages.config文件如下所示:

<packages>
  <package id="PackageA" version="1.2.1" targetFramework="net40" />
  <package id="PackageB" version="2.3.4" targetFramework="net40" />
  <package id="PackageC" version="1.0.0" targetFramework="net40" />
</packages>

我想更新 PackageA 而不更新其他人。我看到Update-Package in the Visual Studio package manager has this capability,但这需要在TFS构建机器上运行。

有没有办法从命令行执行此操作?预期的工作流程是构建机器运行

  1. Nuget.exe恢复
  2. Nuget.exe更新(在每个csproj文件上)
  3. 但是更新命令不允许我们指定要更新的包。我知道包有一个allowedVersions标签,但是这需要我们在创建需要不同组件来更新的不同分支时更改packages.config文件,而特定于包的,特定于csproj的命令行会允许我们通过其构建定义将依赖关系与每个TFS分支相关联。

1 个答案:

答案 0 :(得分:18)

nuget.exe update有一个-Id参数,用于指定项目。所以,例如,

nuget.exe update X.csproj -Id PackageA