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

How do I update a single nuget package in a project from the command line?

我正在尝试更新具有多个依赖项的 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 构建机器上 运行。

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

  1. Nuget.exe恢复
  2. Nuget.exe 更新(在每个 csproj 文件上)

但是 update 命令不允许我们指定更新哪个包。我知道包有一个 allowedVersions 标签,但这需要我们在创建不同的分支时更改 packages.config 文件,这些分支需要更新或不需要不同的组件,而特定于包、特定于 csproj 的命令-行将允许我们通过其构建定义将要更新的依赖关系与每个 TFS 分支相关联。

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

nuget.exe update X.csproj -Id PackageA