Repository navigation
Description
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
- Azure DevOps
- GitHub Actions
Runner images affected
- Ubuntu 20.04
- Ubuntu 22.04
- macOS 11
- macOS 12
- macOS 13
- macOS 13 Arm64
- macOS 14
- macOS 14 Arm64
- Windows Server 2019
- Windows Server 2022
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
Activity
[-]Visual studio[/-][+][Windows-2022] Multiple VC Build Tools will be removed on May, 13[/+]malkia commentedon May 6, 2024
I saw only
Microsoft.VisualStudio.Component.VC.14.29.16.11.ARMandMicrosoft.VisualStudio.Component.VC.14.29.16.11.ARM64- but not x64 and x86.14.29 is Visual Studio 2019 (v142)
joel-nascimento commentedon May 15, 2024
C++ MFC for v142 build tools (x86 & x64)
Fix missing MSVC components after actions/runner-images#9701
Fix missing MSVC components after actions/runner-images#9701 (win)
Fix missing MSVC components after actions/runner-images#9701
Fix missing MSVC components after actions/runner-images#9701 (win)
Fix missing MSVC components after actions/runner-images#9701
Fix missing MSVC components after actions/runner-images#9701 (win)
49 remaining items
github/workflows: Drop VS2017, use preinstalled v142 toolset for VS2019.
fix(01-02): bump defaults to CUDA 12.6.3 + MSVC 14.40 after OQ1 resol…
docs(project): resolve OQ1 — CUDA 12.4.1 → 12.6.3, MSVC 14.39 → 14.40
[GITHUB] Fix builds by dropping VS2017 and retargeting to VS2022 (rea…
ci: Remove no longer needed workaround for GHA Windows images
Merge bitcoin/bitcoin#30242: ci: Native Windows CI job cleanup
ci: Remove no longer needed workaround for GHA Windows images
Merge bitcoin/bitcoin#30242: ci: Native Windows CI job cleanup
fix(ci): T-F122 use --nocache and retry vs_installer for ARM64 component
fix(ci): T-F122 poll filesystem for ARM64 toolset instead of trusting…
ci: Remove no longer needed workaround for GHA Windows images
Merge bitcoin/bitcoin#30242: ci: Native Windows CI job cleanup
github/workflows: Drop VS2017, use preinstalled v142 toolset for VS2019.
Build Windows Conda packages on the latest (windows-2022) Windows Git…