2017-02-22 10 views
0

У меня есть определение сборки в Team Services, которое включает задачу Nuget Packager. Я использую агенты сборки Hosted.
В последние несколько строит эта задача стала терпеть неудачу со следующим сообщением:Командные службы: ошибка 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, попытался упаковать в мою машину, и все получилось просто отлично.
Итак, мои вопросы:

  • Есть ли какой-либо конфигурации в Team Services Сборка Определение , что можно сделать, чтобы решить эту проблему?
  • Как заставить агент сборки Hosted использовать версию 3.5 в задаче NuGet Packager ?

ответ

1

Чтобы использовать nuget3.5 для самородка Упаковщика, задач, вы можете добавить nugget.exe управления версиями, а затем использовать $(Build.SourcesDirectory)\nuget.exe как пути к nugget.exe.

enter image description here

Для NuGet Восстановление и NuGet Publisher задачи, они определяют 3.3 и 3.5 в своих задач. Вы можете просмотреть task.json для всех определений задач в VSTS task.

Если вы хотите Nuget Packager также можете выбрать версию самородок, вы должны разработать свою собственную задачу, такую ​​же, как функция Nuget Packager, и с версией nuget на выбор.

+0

Я надеялся избежать использования nuget.exe в своем исходном контроле. Я предполагаю, что NuGet 3.5 должен быть где-то там, так как он может быть выбран в задаче установщика Nuget. Это единственный вариант? Это действительно ошибка/проблема 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

Смежные вопросы