@@ -136,6 +136,55 @@ jobs:
136136 - name : Checkout
137137 uses : actions/checkout@v4
138138
139+ - name : Fix Visual Studio installation
140+ # Avoid toolset ambiguity that MSVC can't handle.
141+ run : |
142+ Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
143+ $InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
144+ $componentsToRemove= @(
145+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.ARM.Spectre"
146+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.ARM"
147+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.ARM64.Spectre"
148+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.ARM64"
149+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.ATL.ARM.Spectre"
150+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.ATL.ARM"
151+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.ATL.ARM64.Spectre"
152+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.ATL.ARM64"
153+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.ATL.Spectre"
154+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.ATL"
155+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.MFC.ARM.Spectre"
156+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.MFC.ARM"
157+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.MFC.ARM64.Spectre"
158+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.MFC.ARM64"
159+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.MFC.Spectre"
160+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.MFC"
161+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.x86.x64.Spectre"
162+ "Microsoft.VisualStudio.Component.VC.14.37.17.7.x86.x64"
163+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.ARM"
164+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.ARM.Spectre"
165+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.ARM64"
166+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.ARM64.Spectre"
167+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL"
168+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL.ARM"
169+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL.ARM.Spectre"
170+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL.ARM64"
171+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL.ARM64.Spectre"
172+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL.Spectre"
173+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.MFC"
174+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.MFC.ARM"
175+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.MFC.ARM.Spectre"
176+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.MFC.ARM64"
177+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.MFC.ARM64.Spectre"
178+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.MFC.Spectre"
179+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64"
180+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64.Spectre"
181+ )
182+ [string]$workloadArgs = $componentsToRemove | ForEach-Object {" --remove " + $_}
183+ $Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
184+ # should be run twice
185+ $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
186+ $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
187+
139188 - name : Configure Developer Command Prompt for Microsoft Visual C++
140189 # Using microsoft/setup-msbuild is not enough.
141190 uses : ilammy/msvc-dev-cmd@v1
0 commit comments