Unpin MSBuild dependencies to restore VMR source-build coherency - #20278
Merged
Conversation
The Microsoft.Build.* deps were pinned at 18.10.0-1.26370.18 to keep them on the net10.0 asset line while the product targeted net10.0. The product moved to net11.0 (#20080) before the pin landed, so the pin's own unpin condition was already met. In the VMR source-only build this pin causes prebuilts: the VMR source-builds MSBuild on the 18.11.0 line (VS 18.11 channel), so an 18.10.0 reference cannot be satisfied in-tree and leaks to an external feed, dragging its net10 System.* transitive closure with it. Unpin the four Microsoft.Build.* deps and let the existing msbuild -> fsharp VS 18.11 subscription flow the coherent build (darc update-dependencies), and bump the CPM runtime floor 10.0.9 -> 10.0.10 since net11 MSBuild 18.11 pulls System.Collections.Immutable / System.Reflection.Metadata / Security.Cryptography.Xml at >= 10.0.10. VS 18.11 is the same channel the VMR (main and release/11.0.1xx) consumes MSBuild from, restoring coherency and removing the prebuilts. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3a3d99e1-5b05-409a-afd5-c8d9676360f4
Contributor
✅ No release notes required |
abonie
approved these changes
Aug 17, 2026
T-Gro
enabled auto-merge (squash)
August 17, 2026 12:16
abonie
approved these changes
Aug 18, 2026
The EndToEndBuildTests job ran .\Build.cmd -c Release -pack without -ci, so Arcade treated it as a dev build and defaulted UpdateXlfOnBuild=true. That runs the XliffTasks UpdateXlf target after each inner-TFM build of the multi-targeted FSharp.Core, which intermittently fails with 'MSB4057: The target "UpdateXlf" does not exist' when the XliffTasks import has not been applied for that inner build yet. The same flake hits main (e.g. build 1555456). Adding -ci keeps UpdateXlfOnBuild off, matching every other build job in this pipeline (including the -ci -pack AheadOfTime job). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3a3d99e1-5b05-409a-afd5-c8d9676360f4
T-Gro
force-pushed
the
t-gro-super-potato
branch
from
August 18, 2026 09:05
74c6bb9 to
cc0cbcb
Compare
abonie
approved these changes
Aug 18, 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.
The
Microsoft.Build.*deps were pinned at18.10.0-1.26370.18to hold the net10.0 asset line, but the product already moved to net11.0. The .NET 11 VMR source-builds MSBuild on the 18.11.0 line (VS 18.11), so the pinned 18.10 reference can't be satisfied in-tree and leaks to an external feed as a prebuilt in the source-only leg, dragging its net10System.*closure with it.Unpinning lets the existing msbuild → fsharp VS 18.11 subscription flow the coherent build again, and the CPM runtime floor moves to
10.0.10because net11 MSBuild pullsSystem.Collections.Immutable/System.Reflection.Metadata/System.Security.Cryptography.Xmlat>= 10.0.10.Also builds the
EndToEndBuildTestsjob with-ciso Arcade keepsUpdateXlfOnBuildoff. Without it that job ran as a dev build and intermittently failed withMSB4057: The target "UpdateXlf" does not existon FSharp.Core's inner-TFM builds — a flake that also hitsmain. Every other build job in this pipeline already passes-ci.