如何指定哪个版本的 nuget.exe 与 Azure DevOps 中的自托管代理一起使用?

How to specify which version of nuget.exe to use with self-hosted agent in Azure DevOps?

我是 运行 自托管代理,NuGetToolInstaller 总是抛出错误 ERR:unable to get local issuer certificate

我找到了一个修复程序 here。只需将需要的 nuget.exe 版本下载到机器,将其添加到环境变量并完全删除 NuGetToolInstaller。它解决了这个问题,但今天我明白了,事实并非如此。

目前,我有 nuget.exe version 5.6.0,所以我认为自托管代理正在使用它,但是...

同时 运行 Initialize Job Azure 下载 NuGetCommand

我找到了这个位置,可以看到它下载了三个不同版本的 nuget.exe

并且它始终对任何 NuGetCommand 使用 4.1.0

如果没有 NuGetToolInstaller,如何指定要使用的 NuGet 版本?

或者如何使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)'

从管道日志来看,nuget 任务似乎默认使用 v4.1:

如果您不想使用 NuGetToolInstaller 任务,一种解决方法是将 nuget.exe 替换为您要在 {agent work folder}\_tool\NuGet.1.0\x64 文件夹中使用的版本。