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

Command line 如何从命令行更新项目中的单个nuget包?,command-line,nuget,tfsbuild,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" ver

我正在尝试更新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>

我想在不更新其他包的情况下更新包A。我明白了,但这需要在TFS构建机器上运行

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

  • Nuget.exe还原
  • Nuget.exe更新(在每个csproj文件上)

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

    nuget.exe update
    有一个指定项目的参数。那么比如说,

    nuget.exe update X.csproj -Id PackageA
    

    这是一个很好的答案。我还发现(取决于您的设置),您可以简单地引用.sln文件,该文件会在解决方案中的所有相关.csproj文件中进行更新,即<代码>nuget update X.sln-Id PackageA。我还发现
    -FileConflictAction OverWrite
    (或Ignore)非常方便。