Windows agent, VS Enterprise 2022 17.14.28, no VS 15/16/18. Annotated STDOUT:
# Registry probe sets script-scope $latest = .NET 4.0 path (via [ref], works correctly)
##vso[agent.capability name=MSBuild_4.0]C:\Windows\Microsoft.NET\Framework\v4.0.30319\
# Call for VS 16: not installed. if ($latest) falls through to script scope.
##vso[agent.capability name=MSBuild]C:\Windows\Microsoft.NET\Framework\v4.0.30319\
# Call for VS 17: found. $latest = $msbuild creates LOCAL only.
# Writes are correct for this call, but script-scope $latest is NOT updated.
##vso[agent.capability name=MSBuild_17.0]C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\
##vso[agent.capability name=MSBuild]C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\
# Call for VS 18: not installed. Reads stale script-scope $latest.
# CLOBBERS the correct VS 2022 value with .NET 4.0.
##vso[agent.capability name=MSBuild]C:\Windows\Microsoft.NET\Framework\v4.0.30319\
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\Add-MSBuildCapabilities.ps1
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Checking: hive 'LocalMachine', view 'Registry32', key name 'Software\Microsoft\MSBuild\ToolsVersions\2.0', value name 'MSBuildToolsPath'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Key not found.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Checking: hive 'LocalMachine', view 'Registry32', key name 'Software\Microsoft\MSBuild\ToolsVersions\3.5', value name 'MSBuildToolsPath'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Key not found.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Checking: hive 'LocalMachine', view 'Registry32', key name 'Software\Microsoft\MSBuild\ToolsVersions\4.0', value name 'MSBuildToolsPath'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Found String value: 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ##vso[agent.capability name=MSBuild_4.0]C:\Windows\Microsoft.NET\Framework\v4.0.30319\
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] Adding 'MSBuild_4.0': 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Checking: hive 'LocalMachine', view 'Registry32', key name 'Software\Microsoft\MSBuild\ToolsVersions\12.0', value name 'MSBuildToolsPath'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Key not found.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Checking: hive 'LocalMachine', view 'Registry32', key name 'Software\Microsoft\MSBuild\ToolsVersions\14.0', value name 'MSBuildToolsPath'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Key not found.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest Visual Studio 15 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[15.0,16.0)' -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: []
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest BuildTools 15 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[15.0,16.0)' -products Microsoft.VisualStudio.Product.BuildTools -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: []
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest Visual Studio 16 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[16.0,17.0)' -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: []
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest BuildTools 16 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[16.0,17.0)' -products Microsoft.VisualStudio.Product.BuildTools -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: []
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ##vso[agent.capability name=MSBuild]C:\Windows\Microsoft.NET\Framework\v4.0.30319\
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] Adding 'MSBuild': 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest Visual Studio 17 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[17.0,18.0)' -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: [
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: {
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "instanceId": "d9b0cabb",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installDate": "2025-06-17T00:44:40Z",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installationName": "VisualStudio/17.14.28+37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installationPath": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installationVersion": "17.14.37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productId": "Microsoft.VisualStudio.Product.Enterprise",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productPath": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\Common7\\IDE\\devenv.exe",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "state": 4294967295,
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "isComplete": true,
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "isLaunchable": true,
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "isPrerelease": false,
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "isRebootRequired": false,
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "displayName": "Visual Studio Enterprise 2022",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "description": "Scalable, end-to-end solution for teams of any size",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "channelId": "VisualStudio.17.Release",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "channelUri": "https://aka.ms/vs/17/release/channel",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "enginePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\resources\\app\\ServiceHub\\Services\\Microsoft.VisualStudio.Setup.Service",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installChannelUri": "https://aka.ms/vs/17/release/624045707_-738089513/channel",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installedChannelId": "VisualStudio.17.Release",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installedChannelUri": "https://aka.ms/vs/17/release/channel",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.28",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "resolvedInstallationPath": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "thirdPartyNotices": "https://go.microsoft.com/fwlink/?LinkId=661288",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "updateDate": "2026-03-16T12:20:14.0999077Z",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "catalog": {
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "buildBranch": "d17.14",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "buildVersion": "17.14.37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "id": "VisualStudio/17.14.28+37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "localBuild": "build-lab",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "manifestName": "VisualStudio",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "manifestType": "installer",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productDisplayVersion": "17.14.28",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productLine": "Dev17",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productLineVersion": "2022",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productMilestone": "RTW",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productMilestoneIsPreRelease": "False",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productName": "Visual Studio",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productPatchVersion": "28",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productPreReleaseMilestoneSuffix": "1.0",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productSemanticVersion": "17.14.28+37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "requiredEngineVersion": "3.14.2086.54749"
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: },
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "properties": {
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "appLocalWPF": "false",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "campaignId": "",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "channelManifestId": "VisualStudio.17.Release/17.14.28+37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "includeRecommended": "1",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "nickname": "",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "setupEngineFilePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\setup.exe"
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: }
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: }
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ]
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Testing leaf: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exists.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ##vso[agent.capability name=MSBuild_17.0]C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] Adding 'MSBuild_17.0': 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ##vso[agent.capability name=MSBuild]C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] Adding 'MSBuild': 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest Visual Studio 18 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[18.0,19.0)' -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: []
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest BuildTools 18 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[18.0,19.0)' -products Microsoft.VisualStudio.Product.BuildTools -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: []
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ##vso[agent.capability name=MSBuild]C:\Windows\Microsoft.NET\Framework\v4.0.30319\
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] Adding 'MSBuild': 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Checking: hive 'LocalMachine', view 'Registry64', key name 'Software\Microsoft\MSBuild\ToolsVersions\2.0', value name 'MSBuildToolsPath'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Key not found.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Checking: hive 'LocalMachine', view 'Registry64', key name 'Software\Microsoft\MSBuild\ToolsVersions\3.5', value name 'MSBuildToolsPath'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Key not found.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Checking: hive 'LocalMachine', view 'Registry64', key name 'Software\Microsoft\MSBuild\ToolsVersions\4.0', value name 'MSBuildToolsPath'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Found String value: 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ##vso[agent.capability name=MSBuild_4.0_x64]C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] Adding 'MSBuild_4.0_x64': 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Checking: hive 'LocalMachine', view 'Registry64', key name 'Software\Microsoft\MSBuild\ToolsVersions\12.0', value name 'MSBuildToolsPath'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Key not found.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Checking: hive 'LocalMachine', view 'Registry64', key name 'Software\Microsoft\MSBuild\ToolsVersions\14.0', value name 'MSBuildToolsPath'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Key not found.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest Visual Studio 16 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[16.0,17.0)' -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: []
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest BuildTools 16 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[16.0,17.0)' -products Microsoft.VisualStudio.Product.BuildTools -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: []
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ##vso[agent.capability name=MSBuild_x64]C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] Adding 'MSBuild_x64': 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest Visual Studio 17 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[17.0,18.0)' -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: [
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: {
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "instanceId": "d9b0cabb",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installDate": "2025-06-17T00:44:40Z",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installationName": "VisualStudio/17.14.28+37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installationPath": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installationVersion": "17.14.37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productId": "Microsoft.VisualStudio.Product.Enterprise",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productPath": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\Common7\\IDE\\devenv.exe",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "state": 4294967295,
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "isComplete": true,
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "isLaunchable": true,
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "isPrerelease": false,
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "isRebootRequired": false,
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "displayName": "Visual Studio Enterprise 2022",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "description": "Scalable, end-to-end solution for teams of any size",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "channelId": "VisualStudio.17.Release",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "channelUri": "https://aka.ms/vs/17/release/channel",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "enginePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\resources\\app\\ServiceHub\\Services\\Microsoft.VisualStudio.Setup.Service",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installChannelUri": "https://aka.ms/vs/17/release/624045707_-738089513/channel",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installedChannelId": "VisualStudio.17.Release",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "installedChannelUri": "https://aka.ms/vs/17/release/channel",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14#17.14.28",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "resolvedInstallationPath": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "thirdPartyNotices": "https://go.microsoft.com/fwlink/?LinkId=661288",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "updateDate": "2026-03-16T12:20:14.0999077Z",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "catalog": {
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "buildBranch": "d17.14",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "buildVersion": "17.14.37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "id": "VisualStudio/17.14.28+37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "localBuild": "build-lab",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "manifestName": "VisualStudio",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "manifestType": "installer",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productDisplayVersion": "17.14.28",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productLine": "Dev17",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productLineVersion": "2022",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productMilestone": "RTW",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productMilestoneIsPreRelease": "False",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productName": "Visual Studio",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productPatchVersion": "28",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productPreReleaseMilestoneSuffix": "1.0",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "productSemanticVersion": "17.14.28+37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "requiredEngineVersion": "3.14.2086.54749"
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: },
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "properties": {
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "appLocalWPF": "false",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "campaignId": "",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "channelManifestId": "VisualStudio.17.Release/17.14.28+37027.9",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "includeRecommended": "1",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "nickname": "",
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: "setupEngineFilePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\setup.exe"
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: }
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: }
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ]
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Testing leaf: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exists.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ##vso[agent.capability name=MSBuild_17.0_x64]C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] Adding 'MSBuild_17.0_x64': 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ##vso[agent.capability name=MSBuild_x64]C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] Adding 'MSBuild_x64': 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\'
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest Visual Studio 18 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[18.0,19.0)' -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: []
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Getting latest BuildTools 18 setup instance.
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: & D:\agent\bin\powershell\CapabilityHelpers\..\..\..\externals\vswhere\vswhere.exe -version '[18.0,19.0)' -products Microsoft.VisualStudio.Product.BuildTools -latest -format json
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: []
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: Exit code: 0
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] STDOUT: ##vso[agent.capability name=MSBuild_x64]C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
[2026-05-08 08:49:44Z INFO PowerShellCapabilitiesProvider] Adding 'MSBuild_x64': 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\'
What happened?
src/Misc/layoutbin/powershell/Add-MSBuildCapabilities.ps1Get-MSBuildCapabilitiesis meant to update the shared script-scope$latest(the same one written via[ref]$latestbyAdd-CapabilityFromRegistryand by the VS15 block's direct script-scope assignment), but$latest = $msbuildcreates a function-local instead resulting in further calls toGet-MSBuildCapabilitiesreading the stale script-scope value instead of an updated one. This causes the final unsuffixedMSBuildcapability to be clobbered to the latest installed MSBuild prior to v16 if the latest installed is not the latest supported by the script.Problem Code
Repro
Windows agent, VS Enterprise 2022 17.14.28, no VS 15/16/18. Annotated STDOUT:
The 64-bit pass repeats the same sequence and corrupts
MSBuild_x64the same way.MSBuild_4.0: Framework 4.0 pathMSBuild_17.0: VS 2022 pathMSBuild:…\Framework\v4.0.30319\MSBuild_x64:…\Framework64\v4.0.30319\Versions
[2026-05-11 03:18:05Z INFO AgentProcess] Agent package win-x64.
[2026-05-11 03:18:05Z INFO AgentProcess] Running on Windows (X64).
[2026-05-11 03:18:05Z INFO AgentProcess] RuntimeInformation: Microsoft Windows 10.0.26200.
[2026-05-11 03:18:05Z INFO AgentProcess] Version: 4.272.0
[2026-05-11 03:18:05Z INFO AgentProcess] Commit: 491e611
Environment type (Please select at least one enviroment where you face this issue)
Azure DevOps Server type
dev.azure.com (formerly visualstudio.com)
Azure DevOps Server Version (if applicable)
No response
Operation system
Windows 10.0.26200
Version controll system
No response
Relevant log output