Агент сборки TFS On-Prem, использующий старую версию NuGet.exe

Мы принимаем TFS 2017 Update 2 на предварительной версии и используем предварительные агенты сборки. Последняя версия NuGet.exe в настоящее время 4.3.0, но наши агенты сборки всегда используют v4.0.0 по умолчанию. Как я могу заставить наших агентов сборки использовать последнюю версию NuGet.exe?

Нам нужно обновить, потому что NuGet restore не работает при использовании v4.0.0, но работает с v4.3.0, так как мы имеем дело с новыми пакетами.Net Standard 2.0. На нашем сервере сборки я смог сделать NuGet.exe update -self обновить NuGet.exe, найденный на C:\Builds\_work\_tool\NuGet\4.0.0\x64\nuget.exe с 4.0.0 до 4.3.0, но это C:\Builds\_work\_tool Каталог регулярно удаляется и воссоздается, так что это не постоянный обходной путь.

Как я могу заставить наших агентов сборки всегда использовать последнюю версию NuGet.exe или, по крайней мере, v4.3.0?

1 ответ

Решение

Я знаю, что вы не должны отвечать ссылкой, но в этом посте представлены все детали, которые вам понадобятся, подтверждая, что в задаче все еще используется 4.0.0, поэтому с VSTS и TFS 2018 вам не о чем беспокоиться об этом больше (есть новая задача установщика NuGet) и как воссоздать такую ​​задачу для VS 2017.2 (и более ранних версий) с помощью скрипта PowerShell, используя последний NuGet в вашей сборке

На основе связанного ответа Грега, но немного проще:

  1. Добавьте шаг "NuGet Tool Installer" перед другими шагами NuGet, используйте ">=5.0.0" для версии и отметьте "Всегда загружать последнюю соответствующую версию", это должно - хорошо - дать вам последнюю стабильную версию
  2. Замените существующие шаги "NuGet Installer" - кажется, это по умолчанию шаги "NuGet Restore", просто копируя настройки. Они кажутся полностью совместимыми, что позволяет, например, ссылаться на файлы конфигурации пакета или решения, включая сопоставление с образцом.

Вот и все. Более простая замена "установщика NuGet", который требует указать версию с "восстановлением NuGet", которое просто использует NuGet.exe из пути, заданного в "установщике инструмента NuGet". Также не забывайте о запутанном именовании (установщик NuGet Tool / NuGet Installer - они довольно разные).

Стыдно так много возиться с не такой уж старой инфраструктурой TFS 2017.