Как указать, какую версию nuget.exe использовать с автономным агентом в Azure DevOps?

#azure-devops #nuget #azure-pipelines #nuget-package

#azure-devops #nuget #azure-конвейеры #nuget-пакет

Вопрос:

Я запускаю автономный агент и NuGetToolInstaller всегда выдавал ошибку ERR:unable to get local issuer certificate .

Я нашел исправление здесь. Просто загрузите необходимую nuget.exe версию на компьютер, добавьте ее в переменные среды и удалите NuGetToolInstaller вообще. Это устранило проблему, но сегодня я понял, что на самом деле это не так.

В настоящее время у меня есть nuget.exe version 5.6.0 , поэтому я думал, что автономный агент использует ее, но…

Во время работы Initialize Job Azure загружает NuGetCommand

введите описание изображения здесь

Я нашел местоположение и вижу, что оно загружает три разные версии nuget.exe

введите описание изображения здесь

И он всегда использует 4.1.0 для любой NuGetCommand.

введите описание изображения здесь

Как я могу указать, без какой версии NuGet использовать NuGetToolInstaller ?

Или как сделать так, чтобы Initialize Job не загружалось ничего nuget.exe , а просто использовать ту, которая доступна в системе?

Для тестирования я удалил все из yaml , и это выглядит следующим образом:

 trigger:
- master
pool:
  name: somePool    
jobs:
- job: someJob  
  variables:
      solution: '**/*.sln'
      buildPlatform: 'Any CPU'
      buildConfiguration: 'Release'  
  steps:
    - task: NuGetCommand@2
      inputs:
        restoreSolution: '$(solution)'
  

Ответ №1:

Из журнала конвейера кажется, что задача nuget использует версию 4.1 по умолчанию:

введите описание изображения здесь

Если вы не хотите использовать NuGetToolInstaller task, одним из обходных путей является замена nuget.exe с версией, которую вы хотите использовать в {agent work folder}_toolNuGet4.1.0x64 папке.

Комментарии:

1. Это работает, но это взлом. Если никто не предложит какую-нибудь реальную конфигурацию, я пометлю это как правильную.