[automated] Merge branch 'vs18.9' => 'main' - #14291
Merged
Merged
Conversation
This pull request updates the following dependencies [marker]: <> (Begin:8b822e25-6fe2-4f64-8b53-1ba32cac78e4) ## From https://github.com/dotnet/arcade - **Subscription**: [8b822e25-6fe2-4f64-8b53-1ba32cac78e4](https://maestro.dot.net/subscriptions?search=8b822e25-6fe2-4f64-8b53-1ba32cac78e4) - **Build**: [20260507.4](https://dev.azure.com/dnceng/internal/_build/results?buildId=2969534) ([313474](https://maestro.dot.net/channel/8394/github:dotnet:arcade/build/313474)) - **Date Produced**: May 7, 2026 2:49:53 PM UTC - **Commit**: [3454b2fe822e52373f2604856417b0e6bce71d70](dotnet/arcade@3454b2f) - **Branch**: [release/10.0](https://github.com/dotnet/arcade/tree/release/10.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [10.0.0-beta.26164.1 to 10.0.0-beta.26257.4][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: dotnet/arcade@e365cfc...3454b2f [DependencyUpdate]: <> (End) - **Updates to .NET SDKs:** - Updates **tools.dotnet** to 10.0.107 [marker]: <> (End:8b822e25-6fe2-4f64-8b53-1ba32cac78e4) --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Nguyen Huu Linh <huulinhnguyen99@gmail.com> Co-authored-by: Gang Wang <v-gaw@microsoft.com>
This pull request updates the following dependencies [marker]: <> (Begin:36ae1796-1371-4d85-8c50-69153b9e67d7) ## From https://github.com/dotnet/arcade - **Subscription**: [36ae1796-1371-4d85-8c50-69153b9e67d7](https://maestro.dot.net/subscriptions?search=36ae1796-1371-4d85-8c50-69153b9e67d7) - **Build**: [20260519.10](https://dev.azure.com/dnceng/internal/_build/results?buildId=2978939) ([315004](https://maestro.dot.net/channel/8394/github:dotnet:arcade/build/315004)) - **Date Produced**: May 19, 2026 3:48:38 PM UTC - **Commit**: [ef50e01056369b217663cac33386645a296ef53d](dotnet/arcade@ef50e01) - **Branch**: [release/10.0](https://github.com/dotnet/arcade/tree/release/10.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [10.0.0-beta.26257.4 to 10.0.0-beta.26269.10][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: dotnet/arcade@3454b2f...ef50e01 [DependencyUpdate]: <> (End) [marker]: <> (End:36ae1796-1371-4d85-8c50-69153b9e67d7) --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Gang Wang (BEYONDSOFT CONSULTING INC) <v-gaw@microsoft.com>
This pull request updates the following dependencies [marker]: <> (Begin:8b822e25-6fe2-4f64-8b53-1ba32cac78e4) ## From https://github.com/dotnet/arcade - **Subscription**: [8b822e25-6fe2-4f64-8b53-1ba32cac78e4](https://maestro.dot.net/subscriptions?search=8b822e25-6fe2-4f64-8b53-1ba32cac78e4) - **Build**: [20260519.10](https://dev.azure.com/dnceng/internal/_build/results?buildId=2978939) ([315004](https://maestro.dot.net/channel/8394/github:dotnet:arcade/build/315004)) - **Date Produced**: May 19, 2026 3:48:38 PM UTC - **Commit**: [ef50e01056369b217663cac33386645a296ef53d](dotnet/arcade@ef50e01) - **Branch**: [release/10.0](https://github.com/dotnet/arcade/tree/release/10.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [10.0.0-beta.26257.4 to 10.0.0-beta.26269.10][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: dotnet/arcade@3454b2f...ef50e01 [DependencyUpdate]: <> (End) [marker]: <> (End:8b822e25-6fe2-4f64-8b53-1ba32cac78e4) --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Gang Wang (BEYONDSOFT CONSULTING INC) <v-gaw@microsoft.com>
This pull request updates the following dependencies [marker]: <> (Begin:0d0c31fc-ed95-4201-b312-fa81f93928bb) ## From https://github.com/dotnet/arcade - **Subscription**: [0d0c31fc-ed95-4201-b312-fa81f93928bb](https://maestro.dot.net/subscriptions?search=0d0c31fc-ed95-4201-b312-fa81f93928bb) - **Build**: [20260519.10](https://dev.azure.com/dnceng/internal/_build/results?buildId=2978939) ([315004](https://maestro.dot.net/channel/8394/github:dotnet:arcade/build/315004)) - **Date Produced**: May 19, 2026 3:48:38 PM UTC - **Commit**: [ef50e01056369b217663cac33386645a296ef53d](dotnet/arcade@ef50e01) - **Branch**: [release/10.0](https://github.com/dotnet/arcade/tree/release/10.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [10.0.0-beta.26257.4 to 10.0.0-beta.26269.10][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitV3Extensions [1]: dotnet/arcade@3454b2f...ef50e01 [DependencyUpdate]: <> (End) [marker]: <> (End:0d0c31fc-ed95-4201-b312-fa81f93928bb) --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Gang Wang (BEYONDSOFT CONSULTING INC) <v-gaw@microsoft.com>
We can't use the 18.8.0 version because #13883 targeted `main` instead of `vs18.8`, and already built. --------- Co-authored-by: Veronika Ovsyannikova <veronikao@microsoft.com> Co-authored-by: Rainer Sigwald <raines@microsoft.com>
This pull request updates the following dependencies [marker]: <> (Begin:15388ba0-faaf-4906-bba2-a9b719e812a4) ## From https://github.com/dotnet/arcade - **Subscription**: [15388ba0-faaf-4906-bba2-a9b719e812a4](https://maestro.dot.net/subscriptions?search=15388ba0-faaf-4906-bba2-a9b719e812a4) - **Build**: [20260528.4](https://dev.azure.com/dnceng/internal/_build/results?buildId=2986526) ([316238](https://maestro.dot.net/channel/5175/github:dotnet:arcade/build/316238)) - **Date Produced**: May 28, 2026 9:22:26 PM UTC - **Commit**: [9cf79e2a2ecf95c9b2aa6a321baaea009753e356](dotnet/arcade@9cf79e2) - **Branch**: [release/9.0](https://github.com/dotnet/arcade/tree/release/9.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [9.0.0-beta.26261.1 to 9.0.0-beta.26278.4][1] - Microsoft.SourceBuild.Intermediate.arcade - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XliffTasks - Microsoft.DotNet.XUnitExtensions [1]: dotnet/arcade@6c1a2a6...9cf79e2 [DependencyUpdate]: <> (End) [marker]: <> (End:15388ba0-faaf-4906-bba2-a9b719e812a4) --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Gang Wang <v-gaw@microsoft.com>
This pull request updates the following dependencies [marker]: <> (Begin:36ae1796-1371-4d85-8c50-69153b9e67d7) ## From https://github.com/dotnet/arcade - **Subscription**: [36ae1796-1371-4d85-8c50-69153b9e67d7](https://maestro.dot.net/subscriptions?search=36ae1796-1371-4d85-8c50-69153b9e67d7) - **Build**: [20260528.2](https://dev.azure.com/dnceng/internal/_build/results?buildId=2986522) ([316237](https://maestro.dot.net/channel/8394/github:dotnet:arcade/build/316237)) - **Date Produced**: May 28, 2026 9:11:55 PM UTC - **Commit**: [a7bf38d04c8247b059c688f5448dc556e0cd6bb5](dotnet/arcade@a7bf38d) - **Branch**: [release/10.0](https://github.com/dotnet/arcade/tree/release/10.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [10.0.0-beta.26269.10 to 10.0.0-beta.26278.2][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: dotnet/arcade@ef50e01...a7bf38d [DependencyUpdate]: <> (End) - **Updates to .NET SDKs:** - Updates **tools.dotnet** to 10.0.108 [marker]: <> (End:36ae1796-1371-4d85-8c50-69153b9e67d7) --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Gang Wang (BEYONDSOFT CONSULTING INC) <v-gaw@microsoft.com>
This pull request updates the following dependencies [marker]: <> (Begin:8b822e25-6fe2-4f64-8b53-1ba32cac78e4) ## From https://github.com/dotnet/arcade - **Subscription**: [8b822e25-6fe2-4f64-8b53-1ba32cac78e4](https://maestro.dot.net/subscriptions?search=8b822e25-6fe2-4f64-8b53-1ba32cac78e4) - **Build**: [20260528.2](https://dev.azure.com/dnceng/internal/_build/results?buildId=2986522) ([316237](https://maestro.dot.net/channel/8394/github:dotnet:arcade/build/316237)) - **Date Produced**: May 28, 2026 9:11:55 PM UTC - **Commit**: [a7bf38d04c8247b059c688f5448dc556e0cd6bb5](dotnet/arcade@a7bf38d) - **Branch**: [release/10.0](https://github.com/dotnet/arcade/tree/release/10.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [10.0.0-beta.26269.10 to 10.0.0-beta.26278.2][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: dotnet/arcade@ef50e01...a7bf38d [DependencyUpdate]: <> (End) - **Updates to .NET SDKs:** - Updates **tools.dotnet** to 10.0.108 [marker]: <> (End:8b822e25-6fe2-4f64-8b53-1ba32cac78e4) --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Gang Wang (BEYONDSOFT CONSULTING INC) <v-gaw@microsoft.com>
This pull request updates the following dependencies [marker]: <> (Begin:0d0c31fc-ed95-4201-b312-fa81f93928bb) ## From https://github.com/dotnet/arcade - **Subscription**: [0d0c31fc-ed95-4201-b312-fa81f93928bb](https://maestro.dot.net/subscriptions?search=0d0c31fc-ed95-4201-b312-fa81f93928bb) - **Build**: [20260528.2](https://dev.azure.com/dnceng/internal/_build/results?buildId=2986522) ([316237](https://maestro.dot.net/channel/8394/github:dotnet:arcade/build/316237)) - **Date Produced**: May 28, 2026 9:11:55 PM UTC - **Commit**: [a7bf38d04c8247b059c688f5448dc556e0cd6bb5](dotnet/arcade@a7bf38d) - **Branch**: [release/10.0](https://github.com/dotnet/arcade/tree/release/10.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [10.0.0-beta.26269.10 to 10.0.0-beta.26278.2][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitV3Extensions [1]: dotnet/arcade@ef50e01...a7bf38d [DependencyUpdate]: <> (End) - **Updates to .NET SDKs:** - Updates **tools.dotnet** to 10.0.108 [marker]: <> (End:0d0c31fc-ed95-4201-b312-fa81f93928bb) --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Gang Wang (BEYONDSOFT CONSULTING INC) <v-gaw@microsoft.com>
…#13923) vs18.6 stabilization should train OptProf against the VS channel that ships matching 18.6 bits, not the moving int.main channel. Training against int.main causes drift and breaks OptProf collection. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Rainer Sigwald <raines@microsoft.com>
I detected changes in the vs18.6 branch which have not been merged yet to vs18.7. I'm a robot and am configured to help you automatically keep vs18.7 up to date, so I've opened this PR. This PR merges commits made on vs18.6 by the following committers: * @AlesProkop * @dotnet-maestro[bot] ## Instructions for merging from UI This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, *not* a squash or rebase commit. <img alt="merge button instructions" src="https://i.imgur.com/GepcNJV.png" width="300" /> If this repo does not allow creating merge commits from the GitHub UI, use command line instructions. ## Instructions for merging via command line Run these commands to merge this pull request from the command line. ``` sh git fetch git checkout vs18.6 git pull --ff-only git checkout vs18.7 git pull --ff-only git merge --no-ff vs18.6 # If there are merge conflicts, resolve them and then run git merge --continue to complete the merge # Pushing the changes to the PR branch will re-trigger PR validation. git push https://github.com/dotnet/msbuild HEAD:merge/vs18.6-to-vs18.7 ``` <details> <summary>or if you are using SSH</summary> ``` git push git@github.com:dotnet/msbuild HEAD:merge/vs18.6-to-vs18.7 ``` </details> After PR checks are complete push the branch ``` git push ``` ## Instructions for resolving conflicts :warning: If there are merge conflicts, you will need to resolve them manually before merging. You can do this [using GitHub][resolve-github] or using the [command line][resolve-cli]. [resolve-github]: https://help.github.com/articles/resolving-a-merge-conflict-on-github/ [resolve-cli]: https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/ ## Instructions for updating this pull request Contributors to this repo have permission update this pull request by pushing to the branch 'merge/vs18.6-to-vs18.7'. This can be done to resolve conflicts or make other changes to this pull request before it is merged. The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote. ``` git fetch git checkout -b merge/vs18.6-to-vs18.7 origin/vs18.7 git pull https://github.com/dotnet/msbuild merge/vs18.6-to-vs18.7 (make changes) git commit -m "Updated PR with my changes" git push https://github.com/dotnet/msbuild HEAD:merge/vs18.6-to-vs18.7 ``` <details> <summary>or if you are using SSH</summary> ``` git fetch git checkout -b merge/vs18.6-to-vs18.7 origin/vs18.7 git pull git@github.com:dotnet/msbuild merge/vs18.6-to-vs18.7 (make changes) git commit -m "Updated PR with my changes" git push git@github.com:dotnet/msbuild HEAD:merge/vs18.6-to-vs18.7 ``` </details> Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues. Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.
This pull request updates the following dependencies [marker]: <> (Begin:15388ba0-faaf-4906-bba2-a9b719e812a4) ## From https://github.com/dotnet/arcade - **Subscription**: [15388ba0-faaf-4906-bba2-a9b719e812a4](https://maestro.dot.net/subscriptions?search=15388ba0-faaf-4906-bba2-a9b719e812a4) - **Build**: [20260601.4](https://dev.azure.com/dnceng/internal/_build/results?buildId=2988921) ([316590](https://maestro.dot.net/channel/5175/github:dotnet:arcade/build/316590)) - **Date Produced**: June 1, 2026 8:52:28 AM UTC - **Commit**: [efce34e9f9f25af27e2b471fbbf8c21f1ac2e318](dotnet/arcade@efce34e) - **Branch**: [release/9.0](https://github.com/dotnet/arcade/tree/release/9.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [9.0.0-beta.26278.4 to 9.0.0-beta.26301.4][1] - Microsoft.SourceBuild.Intermediate.arcade - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XliffTasks - Microsoft.DotNet.XUnitExtensions [1]: dotnet/arcade@9cf79e2...efce34e [DependencyUpdate]: <> (End) [marker]: <> (End:15388ba0-faaf-4906-bba2-a9b719e812a4) --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Nguyen Huu Linh <huulinhnguyen99@gmail.com>
This pull request updates the following dependencies [marker]: <> (Begin:36ae1796-1371-4d85-8c50-69153b9e67d7) ## From https://github.com/dotnet/arcade - **Subscription**: [36ae1796-1371-4d85-8c50-69153b9e67d7](https://maestro.dot.net/subscriptions?search=36ae1796-1371-4d85-8c50-69153b9e67d7) - **Build**: [20260604.4](https://dev.azure.com/dnceng/internal/_build/results?buildId=2992260) ([317322](https://maestro.dot.net/channel/8394/github:dotnet:arcade/build/317322)) - **Date Produced**: June 4, 2026 3:11:07 PM UTC - **Commit**: [7b306e34463421cef2816352743b943c6547dfab](dotnet/arcade@7b306e3) - **Branch**: [release/10.0](https://github.com/dotnet/arcade/tree/release/10.0) [DependencyUpdate]: <> (Begin) - **Dependency Updates**: - From [10.0.0-beta.26278.2 to 10.0.0-beta.26304.4][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: dotnet/arcade@a7bf38d...7b306e3 [DependencyUpdate]: <> (End) [marker]: <> (End:36ae1796-1371-4d85-8c50-69153b9e67d7) --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Nguyen Huu Linh <huulinhnguyen99@gmail.com>
Co-authored-by: Nguyen Huu Linh <huulinhnguyen99@gmail.com>
The MicroBuildBuildVSBootstrapper task only special-cases 'release'/'preview'
as public channels; any other name (including 'stable') is treated as an
internal channel and requires a vsdrop {prefix};{suffix} installer-manifest
URL. The public 'stable' channel manifest uses a download.visualstudio.microsoft.com
URL with no semicolon, so the task throws "drop url ... is invalid".
'stable' and 'release' resolve to the same public channel manifest
(VisualStudio.18.Release.chman), so this trains the same shipping bits while
fixing the bootstrapper build.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The MicroBuildBuildVSBootstrapper task only special-cases 'release'/'preview'
as public channels; any other name (including 'stable') is treated as an
internal channel and requires a vsdrop {prefix};{suffix} installer-manifest
URL. The public 'stable' channel manifest uses a download.visualstudio.microsoft.com
URL with no semicolon, so the task throws "drop url ... is invalid".
'stable' and 'release' resolve to the same public channel manifest
(VisualStudio.18.Release.chman), so this trains the same shipping bits while
fixing the bootstrapper build.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…#13993) ### Problem PR #13923 changed `VisualStudio.ChannelName` from `int.main` to `stable` to stop OptProf training against the moving `int.main` channel (which caused assembly-version drift, e.g. System.Text.Json 10.0.0.4). Since then the official build fails at **OptProf - Build VS bootstrapper**: > The drop url https://download.visualstudio.microsoft.com/.../VisualStudio.vsman is invalid. Expected the drop url to have the format {prefix};{suffix} ### Root cause The MicroBuild `MicroBuildBuildVSBootstrapper` task only special-cases the literal channel names **`release`** and **`preview`** as public channels. **Any other value — including `stable` — is assumed to be an *internal* channel** whose installer-manifest URL is a vsdrop drop in `{prefix};{suffix}` form. The public `stable` channel resolves (`aka.ms/vs/18/stable/channel`) to `VisualStudio.18.Release.chman`, whose installer-manifest URL is the public CDN `download.visualstudio.microsoft.com/.../VisualStudio.vsman` (no semicolon) -> the task throws. The relevant task logic (`CreateConfigFile`): https://dev.azure.com/devdiv/Engineering/_git/MicroBuild?path=/src/Tasks/BuildVSBootstrapper/plugin.ps1&line=286&lineEnd=307&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents ### Fix Use `release` instead of `stable`. Both resolve to the **same** public channel manifest (`VisualStudio.18.Release.chman`), so OptProf trains against the identical shipping bits — but `release` is one of the two special-cased names, so the task uses the aka.ms config template instead of attempting to parse a vsdrop URL. No behavioral change to trained bits; this only unblocks the bootstrapper build. Companion to #13992 (vs18.6).
…#13992) ### Problem PR #13923 changed `VisualStudio.ChannelName` from `int.main` to `stable` to stop OptProf training against the moving `int.main` channel (which caused assembly-version drift, e.g. System.Text.Json 10.0.0.4). Since then the official build fails at **OptProf - Build VS bootstrapper**: > The drop url https://download.visualstudio.microsoft.com/.../VisualStudio.vsman is invalid. Expected the drop url to have the format {prefix};{suffix} ### Root cause The MicroBuild `MicroBuildBuildVSBootstrapper` task only special-cases the literal channel names **`release`** and **`preview`** as public channels. **Any other value — including `stable` — is assumed to be an *internal* channel** whose installer-manifest URL is a vsdrop drop in `{prefix};{suffix}` form. The public `stable` channel resolves (`aka.ms/vs/18/stable/channel`) to `VisualStudio.18.Release.chman`, whose installer-manifest URL is the public CDN `download.visualstudio.microsoft.com/.../VisualStudio.vsman` (no semicolon) -> the task throws. The relevant task logic (`CreateConfigFile`): https://dev.azure.com/devdiv/Engineering/_git/MicroBuild?path=/src/Tasks/BuildVSBootstrapper/plugin.ps1&line=286&lineEnd=307&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents ### Fix Use `release` instead of `stable`. Both resolve to the **same** public channel manifest (`VisualStudio.18.Release.chman`), so OptProf trains against the identical shipping bits — but `release` is one of the two special-cased names, so the task uses the aka.ms config template instead of attempting to parse a vsdrop URL. No behavioral change to trained bits; this only unblocks the bootstrapper build. Companion to #13993 (vs18.7).
…ase' (#14005) ### Problem The previous fix (#13992, `stable` -> `release`) was wrong. On the official build it fails with: > ##[error]Invalid JSON primitive: . because `release` is **not a valid channel moniker for VS 18**. `https://aka.ms/vs/18/release/channel` bounces to a Bing fallback page, which the bootstrapper task saves as the `.chman` and then fails to parse as JSON. ### Why `release` and `stable` are both wrong The aka.ms moniker convention changed between VS17 and VS18: | moniker | VS 17 | VS 18 | | --- | --- | --- | | `release` | real CDN manifest | bounces to bing.com (broken) | | `stable` | bounces to bing.com | real **public** CDN manifest (`VisualStudio.18.Release.chman`) | | `int.stable` | n/a | **internal vsdrop** manifest (`VisualStudio.18.int.stable.chman`) | So for VS 18 the public GA channel is `stable` (not `release`). But the MicroBuild `MicroBuildBuildVSBootstrapper` task's `CreateConfigFile` only special-cases the VS17-era public names `release`/`preview`. Any other name — including `stable` — is routed down the **internal** path, where it parses the installer-manifest URL as a vsdrop `{prefix};{suffix}` drop. `stable`'s public CDN URL has no semicolon, hence the original *"drop url ... is invalid"* failure. ### Fix Use **`int.stable`**: the **internal, vsdrop-backed** equivalent of `stable`. It tracks the stable 18.x bits (not the moving `int.main` that caused the System.Text.Json 10.0.0.4 drift in #13923), and because it is an internal channel its installer-manifest URL is a vsdrop `{prefix};{suffix}` URL that `CreateConfigFile` accepts. - `https://aka.ms/vs/18/int.stable/channel` resolves to `VisualStudio.18.int.stable.chman` on `vsdrop.microsoft.com` (verified). Relevant task logic (`CreateConfigFile`): https://dev.azure.com/devdiv/Engineering/_git/MicroBuild?path=/src/Tasks/BuildVSBootstrapper/plugin.ps1&line=286&lineEnd=307&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents Companion to #14006 (vs18.7). --- ### Local validation (verified before merge) Replicated every step the `MicroBuildBuildVSBootstrapper` task performs, using the same VSDrop token audience the task uses (per `plugin.ps1`): | Check | Result | Failure mode it rules out | | --- | --- | --- | | (a) `aka.ms/vs/18/int.stable/channel` redirects to **vsdrop** (not bing.com) | ✅ | the `release` "Invalid JSON primitive" (Bing fallback page) | | (b) `.chman` downloads and is valid JSON (11 channelItems) | ✅ | the `release` "Invalid JSON primitive" | | (c) installer-manifest URL splits into `{prefix};{suffix}` (2 parts) | ✅ | the `stable` "drop url ... is invalid" (`CreateConfigFile` `Split(";")` check) | | (d) config payload `…;bootstrappers/Enterprise/configuration/vs_setup_bootstrapper.config` returns **HTTP 200** (after the corp→ZTN host rewrite the task does) | ✅ | the only downstream config-download risk | | (bonus) installer `.vsman` downloads and parses (20,527 packages) | ✅ | the `vsman overlay` step input | This is the same code path `int.main` already runs successfully; `int.stable` only pins it to stable 18.x bits. > Note: the `int.stable` channel's installer manifest is named `VisualStudioIntPreview.vsman` (`...Channels.IntPreviewInstallerManifest`). That is just the drop's internal naming for the stable-pinned channel and does not affect correctness — all checks above passed. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ase' (#14006) ### Problem The previous fix (#13993, `stable` -> `release`) was wrong. On the official build it fails with: > ##[error]Invalid JSON primitive: . because `release` is **not a valid channel moniker for VS 18**. `https://aka.ms/vs/18/release/channel` bounces to a Bing fallback page, which the bootstrapper task saves as the `.chman` and then fails to parse as JSON. ### Why `release` and `stable` are both wrong The aka.ms moniker convention changed between VS17 and VS18: | moniker | VS 17 | VS 18 | | --- | --- | --- | | `release` | real CDN manifest | bounces to bing.com (broken) | | `stable` | bounces to bing.com | real **public** CDN manifest (`VisualStudio.18.Release.chman`) | | `int.stable` | n/a | **internal vsdrop** manifest (`VisualStudio.18.int.stable.chman`) | So for VS 18 the public GA channel is `stable` (not `release`). But the MicroBuild `MicroBuildBuildVSBootstrapper` task's `CreateConfigFile` only special-cases the VS17-era public names `release`/`preview`. Any other name — including `stable` — is routed down the **internal** path, where it parses the installer-manifest URL as a vsdrop `{prefix};{suffix}` drop. `stable`'s public CDN URL has no semicolon, hence the original *"drop url ... is invalid"* failure. ### Fix Use **`int.stable`**: the **internal, vsdrop-backed** equivalent of `stable`. It tracks the stable 18.x bits (not the moving `int.main` that caused the System.Text.Json 10.0.0.4 drift in #13923), and because it is an internal channel its installer-manifest URL is a vsdrop `{prefix};{suffix}` URL that `CreateConfigFile` accepts. - `https://aka.ms/vs/18/int.stable/channel` resolves to `VisualStudio.18.int.stable.chman` on `vsdrop.microsoft.com` (verified). Relevant task logic (`CreateConfigFile`): https://dev.azure.com/devdiv/Engineering/_git/MicroBuild?path=/src/Tasks/BuildVSBootstrapper/plugin.ps1&line=286&lineEnd=307&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents Companion to #14005 (vs18.6). --- ### Local validation (verified before merge) Replicated every step the `MicroBuildBuildVSBootstrapper` task performs, using the same VSDrop token audience the task uses | Check | Result | Failure mode it rules out | | --- | --- | --- | | (a) `aka.ms/vs/18/int.stable/channel` redirects to **vsdrop** (not bing.com) | ✅ | the `release` "Invalid JSON primitive" (Bing fallback page) | | (b) `.chman` downloads and is valid JSON (11 channelItems) | ✅ | the `release` "Invalid JSON primitive" | | (c) installer-manifest URL splits into `{prefix};{suffix}` (2 parts) | ✅ | the `stable` "drop url ... is invalid" (`CreateConfigFile` `Split(";")` check) | | (d) config payload `…;bootstrappers/Enterprise/configuration/vs_setup_bootstrapper.config` returns **HTTP 200** (after the corp→ZTN host rewrite the task does) | ✅ | the only downstream config-download risk | | (bonus) installer `.vsman` downloads and parses (20,527 packages) | ✅ | the `vsman overlay` step input | This is the same code path `int.main` already runs successfully; `int.stable` only pins it to stable 18.x bits. > Note: the `int.stable` channel's installer manifest is named `VisualStudioIntPreview.vsman` (`...Channels.IntPreviewInstallerManifest`). That is just the drop's internal naming for the stable-pinned channel and does not affect correctness — all checks above passed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
### Context
On the `vs17.14` servicing branch, the official build (pipeline
`MSBuild` / definition `9434`) fails in the `OptProf - Build VS
bootstrapper` step (`MicroBuildBuildVSBootstrapper@3`) with `Failed to
obtain an access token from the VSDrop Managed Identity`. `vs17.14` is
in servicing and no longer needs to collect fresh OptProf data, so this
disables OptProf collection (including the failing bootstrapper build)
while continuing to apply the last-collected optimization data so
shipped binaries stay optimized.
### Changes Made
- Changed the `enableOptProf` parameter default from `true` to `false`
in `.vsts-dotnet.yml`, which gates off all OptProf-collection steps
(`MicroBuildOptProfPlugin@6`, `MicroBuildBuildVSBootstrapper@3`,
`VisualStudio.BuildIbcTrainingSettings`, ProfilingInputs publish,
`ready-for-training` tag).
- Removed the `${{ if eq(parameters.enableOptProf, false) }}` block in
`.vsts-dotnet.yml` that forced `SkipApplyOptimizationData` to `true`,
decoupling data *collection* from data *application*;
`SkipApplyOptimizationData` is now governed solely by the pipeline
variable (default `false` = keep applying existing data).
- Gated the `OptProf - Publish Artifact: MicroBuildOutputs` task in
`azure-pipelines/.vsts-dotnet-build-jobs.yml` on `${{
parameters.enableOptProf }}`, since `BootstrapperInfo.json` is only
produced when the bootstrapper runs.
### Testing
- Validated both YAML files parse successfully.
- Pending: queue official build `9434` on the merged `vs17.14` branch
and confirm `OptProf - Build VS bootstrapper` is skipped, the build is
green, and the `Build` step log shows optimization data is still applied
(i.e., `EnableNgenOptimization` is not set to `false`).
- Result: <fill in build link / outcome after the official run>.
### Notes
- `enableOptProf` remains a queue-time parameter, so OptProf collection
can be re-enabled per-run if the VSDrop managed-identity/channel issue
is later resolved.
- No product code changes; VSSetup/packages are still produced, so
downstream VS insertion is unaffected.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…rbf + HashCode 6.0) (#14127) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Rainer Sigwald <raines@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…solution metaproject MSB4057 in parallel builds (#14227) Backport of #14223 to vs18.9 /cc @ViktorHofer --------- Co-authored-by: Viktor Hofer <7412651+ViktorHofer@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Sep 16, 2026
Open
Open
Open
WarperSan
pushed a commit
to WarperSan/ThunderPipe
that referenced
this pull request
Sep 17, 2026
Updated [Microsoft.Build.Utilities.Core](https://github.com/dotnet/msbuild) from 18.9.6 to 18.10.1. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Build.Utilities.Core's releases](https://github.com/dotnet/msbuild/releases)._ ## 18.10.1 ## What's Changed * [vs16.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13103 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13796 * [vs17.8] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13902 * [vs17.11] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13903 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13909 * [vs17.12] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13986 * Add vs18.9 to merge-flow config; retire vs18.3 by @JanProvaznik in dotnet/msbuild#14214 * Bump labeler-cache-retention to use issue-labeler v2.1.0 by @jeffhandley in dotnet/msbuild#14171 * Bump main to 18.10.0 after vs18.9 snap by @JanProvaznik in dotnet/msbuild#14216 * Improve release skill: Phase 2 DARC rules, VMR backflow, deterministic baseline by @JanProvaznik in dotnet/msbuild#14220 * Determinize release: hardcode OptProf baseline + Phase 3.2 baseline resolver by @JanProvaznik in dotnet/msbuild#14222 * Serialize BuildRequestConfiguration.RequestedTargets to fix solution metaproject MSB4057 in parallel builds by @ViktorHofer in dotnet/msbuild#14223 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in dotnet/msbuild#14203 * Core support for AbsolutePath/FileInfo/DirectoryInfo and ITaskItem<T> as task parameters by @baronfel in dotnet/msbuild#13971 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in dotnet/msbuild#14206 * Fix existence cache kind poisoning by @AlesProkop in dotnet/msbuild#14249 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#14226 * Don't disable the MSBuild server for /mt builds when node reuse is off by @AR-May in dotnet/msbuild#14248 * Enhance expert reviewer guidelines with additional checks. by @AR-May in dotnet/msbuild#14255 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#14253 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in dotnet/msbuild#14268 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in dotnet/msbuild#14267 * Bump github/gh-aw-actions/setup from 0.81.6 to 0.82.2 by @dependabot[bot] in dotnet/msbuild#14266 * Avoid boxing the struct enumerator in PropertyDictionary<T>.GetEnumerator() by @nareshjo in dotnet/msbuild#14272 * Refresh copy marker when implementation output changes by @AlesProkop in dotnet/msbuild#14231 * Send task-host build process environment as delta by @OvesN in dotnet/msbuild#14126 * Add regression coverage for metadata newline preservation by @VolPlita in dotnet/msbuild#14261 * Fix EmbedInBinlog items with relative paths from child projects by @huulinhnguyen-dev in dotnet/msbuild#13990 * Stop requiring VersionPrefix updates in servicing - insert prerelease versions to VS by @ViktorHofer in dotnet/msbuild#14277 * Fix WriteLinesToFile rewriting unchanged file when custom encoding is used by @huulinhnguyen-dev in dotnet/msbuild#14146 * Enable trim/AOT analyzers for Microsoft.Build and clean up annotations by @JeremyKuhne in dotnet/msbuild#14064 * [automated] Merge branch 'vs18.9' => 'main' by @github-actions[bot] in dotnet/msbuild#14291 * Fix MicroBuild plugin feed URL to use allowed pkgs.dev.azure.com format by @AlesProkop in dotnet/msbuild#14295 * Pass ExcludeRestorePackageImports during restore to avoid redundant evaluations by @ViktorHofer with @Copilot in dotnet/msbuild#14274 * [vs18.7] Update dependencies from dotnet/arcade by @dotnet-maestro[bot] in dotnet/msbuild#13988 * Adopt Clever Test Selection (CTS) as parallel, non-blocking PR pipeline by @jankratochvilcz in dotnet/msbuild#14212 * Harden exceptions when connecting to server by @JanProvaznik in dotnet/msbuild#14292 * Update MicrosoftBuildVersion in analyzer template by @github-actions[bot] in dotnet/msbuild#13886 * Fix MSBuild Server client dropping build result under WaitAny race (#14172) by @JanProvaznik in dotnet/msbuild#14251 * Partially revert #13660: remove NuGet RestoreTask transient TaskHost workaround by @JanProvaznik in dotnet/msbuild#14297 * Disable daily AI credits guardrail for Expert Code Review workflow by @JanProvaznik with @Copilot in dotnet/msbuild#14314 * Localized file check-in by OneLocBuild Task: Build definition ID 9434: Build ID 14614733 by @dotnet-bot in dotnet/msbuild#14246 * Add opt-in partial (stop-after-pass) project evaluation by @ViktorHofer in dotnet/msbuild#14290 * Use partial evaluation for -getProperty/-getItem without a target by @ViktorHofer in dotnet/msbuild#14296 * [main] Source code updates from dotnet/dotnet by @dotnet-maestro[bot] in dotnet/msbuild#14324 * [main] Update dependencies from dotnet/roslyn by @dotnet-maestro[bot] in dotnet/msbuild#14333 * [main] Update dependencies from nuget/nuget.client by @dotnet-maestro[bot] in dotnet/msbuild#14330 * Bump github/gh-aw-actions/setup from 0.82.2 to 0.82.8 by @dependabot[bot] in dotnet/msbuild#14328 * Restrict partial evaluation to ProjectInstance by @ViktorHofer in dotnet/msbuild#14340 ... (truncated) Commits viewable in [compare view](dotnet/msbuild@v18.9.6...v18.10.1). </details> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This was referenced Sep 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I detected changes in the vs18.9 branch which have not been merged yet to main. I'm a robot and am configured to help you automatically keep main up to date, so I've opened this PR.
This PR merges commits made on vs18.9 by the following committers:
Instructions for merging from UI
This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, not a squash or rebase commit.
If this repo does not allow creating merge commits from the GitHub UI, use command line instructions.
Instructions for merging via command line
Run these commands to merge this pull request from the command line.
or if you are using SSH
After PR checks are complete push the branch
Instructions for resolving conflicts
Instructions for updating this pull request
Contributors to this repo have permission update this pull request by pushing to the branch 'merge/vs18.9-to-main'. This can be done to resolve conflicts or make other changes to this pull request before it is merged.
The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote.
or if you are using SSH
Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues.
Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.