Агент сборки 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 в вашей сборке
На основе связанного ответа Грега, но немного проще:
- Добавьте шаг "NuGet Tool Installer" перед другими шагами NuGet, используйте ">=5.0.0" для версии и отметьте "Всегда загружать последнюю соответствующую версию", это должно - хорошо - дать вам последнюю стабильную версию
- Замените существующие шаги "NuGet Installer" - кажется, это по умолчанию шаги "NuGet Restore", просто копируя настройки. Они кажутся полностью совместимыми, что позволяет, например, ссылаться на файлы конфигурации пакета или решения, включая сопоставление с образцом.
Вот и все. Более простая замена "установщика NuGet", который требует указать версию с "восстановлением NuGet", которое просто использует NuGet.exe из пути, заданного в "установщике инструмента NuGet". Также не забывайте о запутанном именовании (установщик NuGet Tool / NuGet Installer - они довольно разные).
Стыдно так много возиться с не такой уж старой инфраструктурой TFS 2017.