Breaking changes
We will commence the procedure of removing redundant Microsoft.VisualStudio.Component.VC components and leave only the latest available version of some oh them.
Target date
The images rollout process will start on May, 13 and take 3-4 days.
The motivation for the changes
Due to numerous reports regarding errors when using Visual Studio 2022 with multiple pre-installed versions of VC build tools, we are compelled to cease the distribution of alternative versions of the component. Detailed description of the problem can be found here. The list of previously opened issues: #9670, #9404, #9086, #8891, #7867, #7832, #6107, #6091. Therefore, starting from May 6th, we will commence the procedure of removing redundant VC components and leave only the latest available version. We'll possibly reconsider this decision once the problem is resolved.
List of the VC components which are expected to be installed (if you notice that some useful base VC component is missing - indicate that in the comments, we will consider adding it):
| Package |
Version |
| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM |
latest |
| Microsoft.VisualStudio.Component.VC.14.29.16.11.ARM64 |
latest |
| Microsoft.VisualStudio.Component.VC.ASAN |
latest |
| Microsoft.VisualStudio.Component.VC.ATL |
latest |
| Microsoft.VisualStudio.Component.VC.ATL.ARM |
latest |
| Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre |
latest |
| Microsoft.VisualStudio.Component.VC.ATL.ARM64 |
latest |
| Microsoft.VisualStudio.Component.VC.ATL.ARM64.Spectre |
latest |
| Microsoft.VisualStudio.Component.VC.ATL.Spectre |
latest |
| Microsoft.VisualStudio.Component.VC.ATLMFC |
latest |
| Microsoft.VisualStudio.Component.VC.ATLMFC.Spectre |
latest |
| Microsoft.VisualStudio.Component.VC.CLI.Support |
latest |
| Microsoft.VisualStudio.Component.VC.CMake.Project |
latest |
| Microsoft.VisualStudio.Component.VC.CoreIde |
latest |
| Microsoft.VisualStudio.Component.VC.DiagnosticTools |
latest |
| Microsoft.VisualStudio.Component.VC.Llvm.Clang |
latest |
| Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset |
latest |
| Microsoft.VisualStudio.Component.VC.MFC.ARM |
latest |
| Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre |
latest |
| Microsoft.VisualStudio.Component.VC.MFC.ARM64 |
latest |
| Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre |
latest |
| Microsoft.VisualStudio.Component.VC.Modules.x86.x64 |
latest |
| Microsoft.VisualStudio.Component.VC.Redist.14.Latest |
latest |
| Microsoft.VisualStudio.Component.VC.Redist.MSM |
latest |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM.Spectre |
latest |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre |
latest |
| Microsoft.VisualStudio.Component.VC.Runtimes.ARM64EC.Spectre |
latest |
| Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre |
latest |
| Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest |
latest |
| Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest |
latest |
Possible impact
Builds that require non-latest components missing from the list above will be broken.
Platforms affected
Runner images affected
Mitigation ways
Missing workloads can be installed manually in runtime. We recommend to uninstall unsupported workloads before installing new, it might be done using this snippet.
steps:
- name: Delete components
run: |
Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
$InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
$componentsToRemove= @(
"Microsoft.VisualStudio.Component.VC.ATL.ARM"
"Microsoft.VisualStudio.Component.VC.ATL.ARM.Spectre"
)
[string]$workloadArgs = $componentsToRemove | ForEach-Object {" --remove " + $_}
$Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
# should be run twice
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
- name: Install components
run: |
Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
$InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
$componentsToRemove= @(
"Microsoft.VisualStudio.Component.VC.14.39.17.9.ATL.ARM"
"Microsoft.VisualStudio.Component.VC.14.39.17.9.ATL.ARM.Spectre"
)
[string]$workloadArgs = $componentsToRemove | ForEach-Object {" --add " + $_}
$Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
# should be run twice
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
$process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
Breaking changes
We will commence the procedure of removing redundant
Microsoft.VisualStudio.Component.VCcomponents and leave only the latest available version of some oh them.Target date
The images rollout process will start on May, 13 and take 3-4 days.
The motivation for the changes
Due to numerous reports regarding errors when using Visual Studio 2022 with multiple pre-installed versions of VC build tools, we are compelled to cease the distribution of alternative versions of the component. Detailed description of the problem can be found here. The list of previously opened issues: #9670, #9404, #9086, #8891, #7867, #7832, #6107, #6091. Therefore, starting from May 6th, we will commence the procedure of removing redundant VC components and leave only the latest available version. We'll possibly reconsider this decision once the problem is resolved.
List of the VC components which are expected to be installed (if you notice that some useful base VC component is missing - indicate that in the comments, we will consider adding it):
Possible impact
Builds that require non-latest components missing from the list above will be broken.
Platforms affected
Runner images affected
Mitigation ways
Missing workloads can be installed manually in runtime. We recommend to uninstall unsupported workloads before installing new, it might be done using this snippet.