Azure devops 在Microsoft托管的Azure Devops构建管道代理上安装Visual Studio 2015工具包(v140)

Azure devops 在Microsoft托管的Azure Devops构建管道代理上安装Visual Studio 2015工具包(v140),azure-devops,visual-studio-2017-build-tools,Azure Devops,Visual Studio 2017 Build Tools,我有一个遗留的解决方案,我们已经转移到Azure Devops git repo中,我正在尝试为它建立一个构建管道。该解决方案是v141(2017)和v140(2015)项目的混合,只要安装了v140工具集,我就可以在本地机器上在Visual Studio 2017中构建这些项目 理想情况下,我希望使用Microsoft提供的代理,但vs2017-win2016映像在默认情况下似乎不包括v140工具集。由于这不是我们计划经常构建的东西,我尝试使用2017安装程序安装v140工具集: pool:

我有一个遗留的解决方案,我们已经转移到Azure Devops git repo中,我正在尝试为它建立一个构建管道。该解决方案是v141(2017)和v140(2015)项目的混合,只要安装了v140工具集,我就可以在本地机器上在Visual Studio 2017中构建这些项目

理想情况下,我希望使用Microsoft提供的代理,但vs2017-win2016映像在默认情况下似乎不包括v140工具集。由于这不是我们计划经常构建的东西,我尝试使用2017安装程序安装v140工具集:

pool:
    vmImage: 'vs2017-win2016'

steps:
- task: PowerShell@2
  displayName: 'Install Visual Studio v140 Toolset'
  inputs:
    targetType: 'inline'
    script: |
      Write-Output "Starting the installation process. This will take some time"
      $installProcess = Start-Process -FilePath $(Build.SourcesDirectory)/External/VisualStudioBuildTools/installer.exe -ArgumentList "--add Microsoft.VisualStudio.Component.VC.140", "--quiet", "--wait", "--norestart" -Wait -PassThru
      Write-Output "Install Completed with code $($process.ExitCode)"

- task: VSBuild@1
  displayName: 'Build Debug [.sln]'
  inputs:
    solution: '$(Build.SourcesDirectory)/LegacySolution.sln'
    vsVersion: '15.0'
    configuration: 'Debug'
    platform: 'x64'
当我在Azure Devops中运行此程序时,安装过程在大约一分钟后退出,代码为0(成功)。但是,当它尝试构建解决方案时,失败的原因是:

##[error]C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(67,5): Error MSB8020: The build tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, please install v140 build tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution".
以前有人试过这个吗?我唯一能想到的另一件事是尝试检入v140工具集的副本,并尝试将其正确添加到路径中,但我可以看到这是一个非常痛苦的事情

在Microsoft托管的Azure Devops构建管道代理上安装Visual Studio 2015工具包(v140)

一般来说,你不能。如果某些东西需要管理员访问权限,而您正在使用托管代理,则无法执行该操作。我已在本地测试此命令行,我需要与管理员一起运行powershell,否则,我将得到确认提示

此外,她回答说:

VS已经发展到这样一个地步,即在服务器上安装多个版本 同样的代理对我们来说已经不可行了。此外,我们注意到了一些问题 在某些项目类型的并行VS安装中。为了这些 由于种种原因,我们决定继续使用单一的工具集。如果 您需要多个版本,然后必须设置自定义版本 代理。很抱歉,我们无法满足所有客户的要求 使用公共托管代理映像的需求

所以,要解决这个问题,我们必须设置我们的私人代理

希望这有帮助