Azure devops 团队服务:Nuget Packager任务失败

Azure devops 团队服务:Nuget Packager任务失败,azure-devops,Azure Devops,我在TeamServices中有一个包含Nuget Packager任务的构建定义。我正在使用托管的生成代理。在上两个生成中,此任务开始失败,并显示以下消息: 2017-02-22T21:43:24.9318762Z C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\2.112.0\externals\nuget\NuGet.exe pack "D:\a\1\s\src\app\Ormie\Ormie.csproj" -Output

我在TeamServices中有一个包含Nuget Packager任务的构建定义。我正在使用托管的生成代理。
在上两个生成中,此任务开始失败,并显示以下消息:

2017-02-22T21:43:24.9318762Z C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\2.112.0\externals\nuget\NuGet.exe pack "D:\a\1\s\src\app\Ormie\Ormie.csproj" -OutputDirectory "D:\a\1\s" -Properties Configuration=release
2017-02-22T21:43:25.5460318Z MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'.
2017-02-22T21:43:25.5460318Z Attempting to build package from 'Ormie.csproj'.
2017-02-22T21:43:25.7480272Z Packing files from 'D:\a\1\s\src\app\Ormie\bin\Release'.
2017-02-22T21:43:25.9040273Z Using 'Ormie.nuspec' for metadata.
2017-02-22T21:43:26.1645370Z ##[error]'System.Collections' already has a dependency defined for 'Microsoft.NETCore.Platforms'.
2017-02-22T21:43:26.1865365Z ##[error]System.Exception: Unexpected exit code 1 returned from tool NuGet.exe
2017-02-22T21:43:26.1865365Z    at Microsoft.TeamFoundation.DistributedTask.Task.Internal.InvokeToolCmdlet.ProcessRecord()
2017-02-22T21:43:26.1865365Z    at System.Management.Automation.CommandProcessor.ProcessRecord()
2017-02-22T21:43:26.2015355Z ##[error]PowerShell script completed with 1 errors.
2017-02-22T21:43:26.2025352Z ##[section]Finishing: NuGet Packager 
为了理解发生了什么,我尝试在我的开发框中使用NuGet版本3.3创建包,得到了类似的消息。所以,我已经将NuGet更新到3.5版,尝试在我的机器中打包,它运行得很好。
所以,我的问题是:

  • 团队服务构建定义中是否有任何类型的配置 能做些什么来解决这个问题
  • 如何强制托管的生成代理在中使用版本3.5 NuGet打包机任务

要使用Nugget3.5执行nugget packager任务,可以将nugget.exe添加到源代码管理中,然后使用
$(Build.SourcesDirectory)\nuget.exe
作为nugget.exe的路径

对于Nuget RestoreNuget Publisher任务,它们在任务中定义了3.3和3.5。您可以在中查看所有任务定义的
task.json


如果你想Nuget Packager也可以选择nugget版本,你应该开发自己的任务,与Nuget Packager函数相同,并使用Nuget版本进行选择。

我希望避免在源代码管理中使用Nuget.exe。我想NuGet 3.5一定在某个地方,因为它可以在NuGet安装程序任务中选择。这是唯一的选择吗?这真的是一个错误/问题吗?VSTS?因为您使用的是hosted agent,所以无法控制/安装软件。由hosted agent解析为的软件。如果您不想在源代码管理中添加nuget.exe,如果它满足您的其他要求,您可以使用自己的部署代理。很抱歉,正如我的问题和我的评论中所述,我就是不明白。为什么Nuget Restore和Nuget Publisher任务允许我选择Nuget版本(3.3或3.5),而Nuget Packager不允许。只是我觉得这很奇怪!?对于Nuget Restore和Nuget Publisher任务,它们在任务中定义了3.3和3.5。您可以在中查看所有任务定义的
task.json
。如果您希望Nuget Packager也可以选择nugget版本,您应该开发自己的任务,该任务与Nuget Packager功能相同,并且可以选择Nuget版本。我们将在即将到来的sprint中更新Nuget Packager任务,以启用安装程序和发布者任务中当前可用的相同版本选择器。作为更新的一部分,我们还将提供NuGet 4.0。