我正在尝试在包含多个依赖项的 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 而不更新其他软件包。我发现在 Visual Studio 包管理器中的 Update-Package 可以做到这一点,但需要在 TFS 构建机上运行。
有没有办法从命令行执行此操作?预期的工作流程是构建机运行:
- Nuget.exe restore
- Nuget.exe update(在每个 csproj 文件上)
但是,update 命令不允许我们指定要更新的软件包。我知道软件包中有一个 allowedVersions 标签,但这将要求我们更改 packages.config 文件以创建需要更新或不更新不同组件的不同分支,而软件包特定的,csproj 特定的命令行将允许我们通过其构建定义将要更新的依赖关系与每个 TFS 分支相关联。
nuget update X.sln -Id PackageA
。我还发现-FileConflictAction OverWrite
(或 Ignore)非常方便。 - keithl8041