在 VSTS 'Newtonsoft.Json' 上打包 nuget 包已经为 'NETStandard.Library' 定义了依赖项

Packaging nuget package on VSTS 'Newtonsoft.Json' already has a dependency defined for 'NETStandard.Library'

在 VSTS 中使用 Nuget Packager 打包构建,我收到错误:

[错误]'Newtonsoft.Json' 已经为 'NETStandard.Library'.

定义了依赖项

大多数解决此问题的提示都涉及更新 nuget,但由于我是在 Team Services 上构建的,所以我无法真正做到这一点。

看来nuget packager使用的nuget不是最新的。在使用最新的 nuget.exe 在本地进行测试后,一切正常,因此我添加了一个新的 powershell 发布步骤。此解决方案适用于 VSTS,对于您有权访问服务器的 TFS,我建议在服务器本身上升级 nuget.exe:

此脚本将 nuget.exe 下载到 artifacts 目录(并输出 nuget.exe 的路径,以便您可以看到它的放置位置。)。

然后我更改了 Nuget Packager 构建步骤以使用新下载的 nuget.exe。

今天遇到了同样的问题。

使用您自己的构建代理

如果您使用自己的构建代理(而不是托管代理),您可以手动将 NuGet 版本更新到最新版本。就我而言,这解决了我的问题。

例如C:\agent\externals\nuget\nuget.exe

使用托管代理

它有点乱,但您可以将最新的 nuget.exe 上传到存储库并设置 NuGet Packager 来使用它。

对于在 2018 年遇到此问题的任何人,Microsoft 已经创建了一个新版本的 NuGet 任务来修复此问题。无需 powershell 安装步骤。

将构建步骤版本中的 NuGet 任务版本更改为 2。*

这对我造成了一些重大改变,我通过以下高级设置解决了这个问题

Nuget 恢复

Nuget 包

Nuget 推送