2017-02-22 77 views
0

我在Team Services中有一个包含Nuget Packager任务的生成定义。我正在使用托管构建代理。
在过去的建立这一任务开始失败,并显示以下消息:团队服务: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版本,尝试在我的机器中打包并且工作得很好。
所以,我的问题是:

  • 是否有团队服务的任何类型的配置构建定义 可以做,来解决这个问题?
  • 如何强制Hosted构建代理使用版本3.5的 NuGet Packager任务?

回答

1

要使用金块打包任务nuget3.5,您可以添加nugget.exe到源代码控制,然后用$(Build.SourcesDirectory)\nuget.exe路径nugget.exe

enter image description here

对于的NuGet恢复的NuGet发布任务,他们定义自己的任务3.3和3.5。您可以在VSTS task中查看task.json的所有任务定义。

如果你想Nuget Packager也可以选择金块版本,你应该开发自己的任务相同的Nuget Packager功能和nuget版本来选择。

+0

我希望避免在我的源代码管理中有nuget.exe。我猜NuGet 3.5必须在那里,因为它可以在Nuget Installer任务中选择。这是唯一的选择吗?这真的是一个错误/问题是VSTS吗? – DMVC

+0

由于您使用托管代理,因此无法控制/安装软件。由代理托管的软件为https://www.visualstudio.com/en-us/docs/build/concepts/agents/hosted。如果您不想在源代码管理中添加nuget.exe,则可以使用您自己的部署代理(如果它符合您的其他要求)。 –

+0

对不起,正如我的问题和我的评论所述,我只是不明白。为什么** Nuget Restore **和** Nuget Publisher **任务允许我选择nuget版本(3.3或3.5),并且** Nuget Packager **不会。难道我只是觉得这很奇怪! – DMVC