Skip to content

Bump minimum MSBuild version to 18.7#55230

Open
JanProvaznik wants to merge 1 commit into
dotnet:mainfrom
JanProvaznik:dev/janprovaznik/bump-msbuild-min-18.7
Open

Bump minimum MSBuild version to 18.7#55230
JanProvaznik wants to merge 1 commit into
dotnet:mainfrom
JanProvaznik:dev/janprovaznik/bump-msbuild-min-18.7

Conversation

@JanProvaznik

@JanProvaznik JanProvaznik commented Jul 10, 2026

Copy link
Copy Markdown
Member

Bumps the SDK's minimum MSBuild version from 18.6 to 18.7.

VS stable is 18.7 so it should be ok

Context

This is the SDK-side counterpart to the MSBuild/Roslyn 18.7 work (dotnet/roslyn#84343). The SDK maintains two MSBuild version channels:

  • MicrosoftBuildVersion — the MSBuild that the SDK redistributes, darc-flowed from the VMR (currently 18.9-preview). Unchanged.
  • MicrosoftBuildMinimumVersion — the lagging minimum that the SDK's .NET Framework tasks build against, so they still load in a slightly-older Visual Studio / MSBuild.exe. This is what moves here.

The SDK's own .NET Framework tasks depend on the multithreadable task types (IMultiThreadableTask, TaskEnvironment, MSBuildMultiThreadableTaskAttribute, AbsolutePath) introduced in the MSBuild 18.x line (see the polyfill-removal change that first raised this minimum to 18.6, dotnet/msbuild#13695). Aligning the minimum to 18.7 keeps the SDK's baseline in lockstep with the 18.7 MSBuild/Roslyn baseline.

Changes

  • eng/Versions.props
    • MicrosoftBuildMinimumVersion: 18.6.0-preview-26208-11018.7.1 (the latest shipped 18.7 MSBuild available on the configured feeds — same package the Roslyn 18.7 PR uses).
    • MinimumVSVersion: 18.618.7 (installer-UI minimum, kept in lockstep with the MSBuild minimum).
  • src/Layout/redist/minimumMSBuildVersion: 18.6.018.7.0 (runtime gate that prevents an older MSBuild from loading the SDK; the clean .0 per the "minimum should be .0" convention).

The .NETFramework-targeted Microsoft.Build.* package versions in Directory.Packages.props are driven by MicrosoftBuildMinimumVersion, so no per-project edits are needed — the two -preview18.7.1 bump flows through automatically.

Validation (local, bootstrapped SDK)

  • Restore: 0 errors, no NU1109. Microsoft.Build 18.7.1 resolves cleanly for the net472 task projects — the SDK's .NET 11 System.* band already satisfies 18.7.1's dependency closure (no System.* downgrade needed).
  • Build: 0 warnings, 0 errors for Microsoft.NET.Build.Tasks and Microsoft.NET.Build.Extensions.Tasks on both net472 (built against the 18.7.1 minimum) and net11.0.

Notes for reviewers

  • MinimumVSVersion bump is included to keep the VS-installer minimum consistent with the MSBuild minimum (both were 18.6). Flagging in case the VS minimum should move on a different cadence.
  • Draft: opening for CI validation and review of the exact 18.7.1 pin vs. a preview build.

The SDK's .NET Framework tasks build against MicrosoftBuildMinimumVersion (the lagging minimum MSBuild that must load in older VS), and src/Layout/redist/minimumMSBuildVersion gates SDK load at runtime. Bump both from 18.6 to 18.7 to align with the MSBuild/Roslyn 18.7 baseline (dotnet/roslyn#84343), so SDK tasks relying on the multithreadable task types build against and require 18.7.

- MicrosoftBuildMinimumVersion: 18.6.0-preview-26208-110 -> 18.7.1 (latest shipped 18.7 on the configured feeds)

- MinimumVSVersion: 18.6 -> 18.7

- src/Layout/redist/minimumMSBuildVersion: 18.6.0 -> 18.7.0

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@JanProvaznik JanProvaznik marked this pull request as ready for review July 10, 2026 08:54
Copilot AI review requested due to automatic review settings July 10, 2026 08:54
@JanProvaznik JanProvaznik requested a review from marcpopMSFT July 10, 2026 08:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR raises the .NET SDK’s minimum supported MSBuild baseline from 18.6 to 18.7, aligning the SDK’s .NET Framework task build-time MSBuild package references and the runtime MSBuild version gate used by the SDK resolver.

Changes:

  • Update MicrosoftBuildMinimumVersion to 18.7.1 and MinimumVSVersion to 18.7 in eng/Versions.props.
  • Update the runtime MSBuild gate in src/Layout/redist/minimumMSBuildVersion from 18.6.0 to 18.7.0.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
eng/Versions.props Bumps the minimum MSBuild package version (used for .NET Framework-targeted builds) and the minimum VS version used by installer UI messaging.
src/Layout/redist/minimumMSBuildVersion Raises the minimum MSBuild version that can load the SDK (resolver/runtime gate).

Comment thread eng/Versions.props
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants