actions / runner-images

GitHub Actions runner images
MIT License
9.82k stars 3.01k forks source link

MSVC version is 14.35 when i'd expect it to be 14.36 #7867

Closed alastairUK closed 1 year ago

alastairUK commented 1 year ago

Description

I guess this is related to

https://github.com/actions/runner-images/issues/7700

https://github.com/actions/runner-images/issues/7487

and I am pretty sure it was working recently but today (6th July) I am seeing

ClCompile: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\bin\HostX86\x86\CL.exe

in my build output when i'd expect it to be using 14.36.xxxx

Platforms affected

Runner images affected

Image version and build link

Starting: Initialize job Agent name: 'Hosted Agent' Agent machine name: 'fv-az794-465' Current agent version: '3.220.5' Operating System Microsoft Windows Server 2022 10.0.20348 Datacenter Runner Image Image: windows-2022 Version: 20230625.1.0 Included Software: https://github.com/actions/runner-images/blob/win22/20230625.1.0/images/win/Windows2022-Readme.md Image Release: https://github.com/actions/runner-images/releases/tag/win22%2F20230625.1.0 Runner Image Provisioner 2.0.238.1 Current image version: '20230625.1.0' Agent running as: 'VssAdministrator' Prepare build directory. Set build variables. Download all required tasks. Downloading task: NuGetToolInstaller (0.221.0) Downloading task: NuGetCommand (2.222.0) Downloading task: VSBuild (1.214.0) Downloading task: VSTest (2.220.0) Downloading task: CopyFiles (2.211.0) Downloading task: PublishBuildArtifacts (1.223.1) Checking job knob settings. Knob: DockerActionRetries = true Source: $(VSTSAGENT_DOCKER_ACTION_RETRIES) Knob: AgentToolsDirectory = C:\hostedtoolcache\windows Source: ${AGENT_TOOLSDIRECTORY} Knob: AgentPerflog = c:\vsts\perflog Source: ${VSTS_AGENT_PERFLOG} Knob: ContinueAfterCancelProcessTreeKillAttempt = true Source: $(VSTSAGENT_CONTINUE_AFTER_CANCEL_PROCESSTREEKILL_ATTEMPT) Finished checking job knob settings. Start tracking orphan processes.

Is it regression?

Version: 20230620.1.0

Expected behavior

I'd expect as the VS version is

Visual Studio Enterprise 2022 | 17.6.33815.320

That it would be using

C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.36.xxxx

Not 14.35

Actual behavior

ClCompile: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.35.32215\bin\HostX86\x86\CL.exe

Repro steps

Compile a C++ project using MSBuild on Azure Devops and look at the build output

shamil-mubarakshin commented 1 year ago

Hello @alastairUK, Thanks for reporting. Similar VC tools behavior is tracked in https://github.com/actions/runner-images/issues/7832, so I will close this issue as a duplicate. Feel free to reach out in case of concerns

alastairUK commented 1 year ago

This workaround https://github.com/actions/runner-images/issues/7832 does work

ClCompile: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.36.32532\bin\HostX86\x64\CL.exe

But...

It takes a LONG time on Azure Devops to run the command listed in https://github.com/actions/runner-images/issues/7832

It takes 10m 12s when the build of my sln is only 2m 40s so it's not feeling like a great solution for my use case.

fedormsv commented 1 year ago

Same issue with 17.7: it stays prefers 14.36 to 14.37 if both are installed. It is somehow related to the presence of C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\Microsoft.VCToolsVersion.v143.props, that specifies old toolset. This file seems to be present only if previous multiple toolsets are available.

alastairUK commented 1 year ago

Strikes me that the default behaviour should always to use the latest version and any workaround should be for people wanting to use older versions of the compiler. As I mention above the workaround takes too long to run in Azure Devops