在VSTS' Newtonsoft.Json'上打包nuget包。已经为“NETStandard.Library”定义了依赖关系。

时间:2017-06-19 13:35:55

标签: tfs nuget azure-devops nuget-package azure-pipelines-release-pipeline

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

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

定义了依赖关系。”

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

3 个答案:

答案 0 :(得分:4)

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

Inline powershell build step - downloads nuget.exe

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

然后我修改了Nuget Packager构建步骤以使用刚刚下载的nuget.exe。 Nuget Packager build step with Custom path to nuget.exe

答案 1 :(得分:2)

今天有同样的问题。

使用您自己的构建代理

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

e.g。 C:\剂\的外部\的NuGet \ nuget.exe

使用托管代理

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

答案 2 :(得分:1)

对于在2018年获得此功能的任何人,Microsoft已创建了一个新版本的NuGet任务来修复此问题。无需PowerShell安装步骤。

enter image description here

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

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

Nuget Restore

enter image description here

Nuget Pack

enter image description here

Nuget push

enter image description here