【问题标题】:How do I update a single nuget package in a project from the command line?如何从命令行更新项目中的单个 nuget 包?
【发布时间】:2016-08-16 23:53:43
【问题描述】:

我正在尝试更新具有多个依赖项的 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 文件上)

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

【问题讨论】:

    标签: command-line nuget tfsbuild


    【解决方案1】:

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

    nuget.exe update X.csproj -Id PackageA
    

    【讨论】:

    • 这是一个很好的答案。我还发现(取决于您的设置)您可以简单地引用 .sln 文件,该文件又会在解决方案中的所有相关 .csproj 文件中进行更新,即; nuget update X.sln -Id PackageA。我还发现-FileConflictAction OverWrite(或忽略)可以很方便。
    猜你喜欢
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多