Skip to content

Docs (.NET 11): scope legacy Mono runtime controls - #3520

Merged
jfversluis merged 5 commits into
dotnet:mainfrom
vitek-karas:vitek-karas-doc-018-runtime-scoping
Sep 29, 2026
Merged

jfversluis merged 5 commits into
dotnet:mainfrom
vitek-karas:vitek-karas-doc-018-runtime-scoping

Conversation

@vitek-karas

@vitek-karas vitek-karas commented Sep 16, 2026 •

Copy link
Copy Markdown
Member

Summary

Adds narrow .NET 11 scoping to legacy Mono runtime controls while preserving the existing .NET 10-and-earlier migration guidance.

  • Hides Android AOT, LLVM, Startup Tracing, and garbage collection controls from the .NET 11 Visual Studio properties view.
  • Hides iOS LLVM, float operation, and garbage collector controls from the .NET 11 view.
  • Keeps the Xamarin.Android Mono AOT migration guidance through .NET 10 and directs .NET 11 CoreCLR projects to ReadyToRun.
  • Clarifies that the iOS, macOS, and tvOS SGen properties shouldn't be copied into .NET 11 CoreCLR projects.

Migration guidance

Normal .NET 11 Android Release builds use CoreCLR with composite partial ReadyToRun by default. Full ReadyToRun can be enabled with MauiEnableFullReadyToRun=true, with the documented package-size tradeoff.

This PR is independent from #3511 (DOC-001), but uses its approved CoreCLR and ReadyToRun terminology. There are no overlapping changed files, and no files owned by DOC-001, DOC-002, or DOC-003 are modified.

Files changed

  • docs/deployment/visual-studio-properties.md
  • docs/migration/android-projects.md
  • docs/migration/apple-projects.md

Validation

  • Targeted markdownlint-cli2: 0 errors.
  • DocFX build: succeeded with 0 errors and no moniker warnings; repository-wide pre-existing warnings remain.
  • net-maui-10.0 and net-maui-11.0 filtered-view checks: passed for all changed ranges.
  • Table and list continuity checks: passed.
  • Added relative links and the readytorun-r2r anchor: resolved in DocFX output.
  • Generic link checker reported only pre-existing root-relative Microsoft Learn links and legacy GitHub links; no added link failed.
  • git diff --check: passed.

Related implementation


Internal previews

File Preview link
docs/deployment/visual-studio-properties.md Learn preview
docs/migration/android-projects.md Learn preview
docs/migration/apple-projects.md Learn preview

Build report

Copilot AI lite review requested due to automatic review settings September 16, 2026 08:50
@learn-build-service-prod

Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans.

✅ No issues found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

Learn Build status updates of commit 6116ef1:

✅ Validation status: passed

File Status Preview URL Details
docs/deployment/visual-studio-properties.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/android-projects.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/apple-projects.md ✅Succeeded View (>=net-maui-8.0)

For more details, please refer to the build report.

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.

🟡 Changes recommended

Unresolved scoping and cross-version link inconsistencies could mislead .NET 11 and intentional Mono users.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Adds .NET 11 scoping for legacy Mono controls and documents Android CoreCLR/ReadyToRun and Apple migration guidance.

Changes:

  • Scope Android and Apple Visual Studio properties by framework version.
  • Add .NET 11 Android ReadyToRun guidance.
  • Clarify Apple SGen migration guidance.
File summaries
File Summary and final comments
docs/migration/apple-projects.md Adds .NET 11 SGen guidance. Nits: scope SGen mappings to .NET 10 and earlier (2 votes); restrict warnings to CoreCLR migrations because UseMonoRuntime=true remains supported (1 vote).
docs/migration/android-projects.md Adds .NET 11 CoreCLR and ReadyToRun guidance. Nit: coordinate or version the linked runtime guidance, which currently contradicts the Android .NET 11 defaults (1 vote).
docs/deployment/visual-studio-properties.md Scopes legacy runtime controls. Nits: qualify Android and iOS statements to CoreCLR projects and address the cross-version Apple runtime link (1 vote each).
Review details

Suppressed comments (5)

docs/deployment/visual-studio-properties.md:589

  • This new .NET 11 link has the same cross-version problem for Apple guidance: the current runtimes-compilation.md page still lists iOS as Mono + Mono AOT in its defaults table and describes CoreCLR on iOS as experimental. A .NET 11 reader can therefore get the opposite of this paragraph's claim that iOS uses CoreCLR. Coordinate the runtime-page update or link to versioned content before publishing this guidance.
The **LLVM**, **Float operations**, and **Garbage collector** controls configure the Mono runtime and aren't applicable to .NET 11 iOS projects, which use CoreCLR. For supported runtime and compilation options, see [Runtimes and compilation in .NET MAUI](runtimes-compilation.md).

docs/deployment/visual-studio-properties.md:509

  • CoreCLR is the default for normal .NET 11 Android Release builds, but UseMonoRuntime=true remains an opt-out. As written, this says the legacy controls are inapplicable to every .NET 11 Android project, including projects that deliberately use Mono; qualify the statement to CoreCLR projects and identify the default Release scope.
The **AOT**, **LLVM**, **Startup Tracing**, and **Garbage Collection** controls configure the Mono runtime and aren't applicable to .NET 11 Android projects, which use CoreCLR. For supported runtime and compilation options, see [Runtimes and compilation in .NET MAUI](runtimes-compilation.md).

docs/deployment/visual-studio-properties.md:589

  • UseMonoRuntime=true is still documented as an opt-out for .NET 11, so this wording is too broad for iOS projects that intentionally remain on Mono. Qualify the statement to projects that use CoreCLR, matching the migration guidance and the actual runtime choice.
The **LLVM**, **Float operations**, and **Garbage collector** controls configure the Mono runtime and aren't applicable to .NET 11 iOS projects, which use CoreCLR. For supported runtime and compilation options, see [Runtimes and compilation in .NET MAUI](runtimes-compilation.md).

docs/migration/android-projects.md:190

  • At this branch's base, the linked runtimes-compilation.md page's default table still lists Android Release as Mono + Mono AOT (lines 108-120), so following this new .NET 11 link presents guidance that contradicts this paragraph. Because that page is not changed here and #3511 is separate, this needs coordinated merge ordering or a versioned/updated target before the link is used.
Normal .NET 11 Android `Release` builds use the supported CoreCLR ReadyToRun path. Composite partial ReadyToRun is enabled by default. You can set `$(MauiEnableFullReadyToRun)` to `true` to enable full ReadyToRun, which can improve startup or runtime performance at the cost of package size. For more information, see [Runtimes and compilation in .NET MAUI](../deployment/runtimes-compilation.md#readytorun-r2r).

docs/migration/apple-projects.md:51

  • UseMonoRuntime=true remains the documented opt-out for .NET 11, so this note currently tells projects that intentionally use Mono to discard properties that still configure their selected runtime. Restrict the warning to migrations targeting a .NET 11 CoreCLR project.
> When migrating projects for iOS, macOS, or tvOS to .NET 11, don't copy `$(MtouchEnableSGenConc)` or `$(EnableSGenConc)`. These properties configure Mono's SGen garbage collector and don't apply to CoreCLR.
  • Files reviewed: 3/3 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/migration/apple-projects.md Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@vitek-karas
vitek-karas force-pushed the vitek-karas-doc-018-runtime-scoping branch from 6116ef1 to dbe464a Compare September 16, 2026 08:55
@learn-build-service-prod

Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans.

✅ No issues found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

Learn Build status updates of commit dbe464a:

✅ Validation status: passed

File Status Preview URL Details
docs/deployment/visual-studio-properties.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/android-projects.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/apple-projects.md ✅Succeeded View (>=net-maui-8.0)

For more details, please refer to the build report.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@learn-build-service-prod

Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans.

✅ No issues found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

Learn Build status updates of commit 0b6174f:

✅ Validation status: passed

File Status Preview URL Details
docs/deployment/visual-studio-properties.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/android-projects.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/apple-projects.md ✅Succeeded View (>=net-maui-8.0)

For more details, please refer to the build report.

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.

Copilot review overview

🟢 Approval recommended

Only a minor non-blocking wording nit remains.

Review effort: Lite
Findings: 1 Low severity

Open (1)
Resolved since last review (1)

Comment thread docs/deployment/visual-studio-properties.md Outdated
Clarified the default runtime for .NET 11 Android projects.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@vitek-karas
vitek-karas requested a lite review from Copilot September 24, 2026 14:31
@learn-build-service-prod

Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans.

✅ No issues found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

Learn Build status updates of commit 4dc3f69:

✅ Validation status: passed

File Status Preview URL Details
docs/deployment/visual-studio-properties.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/android-projects.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/apple-projects.md ✅Succeeded View (>=net-maui-8.0)

For more details, please refer to the build report.

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.

Copilot review overview

🟢 Approval recommended

The remaining wording nit is minor and does not block approval.

Review effort: Lite
Findings: None

Resolved since last review (1)

@vitek-karas
vitek-karas marked this pull request as ready for review September 24, 2026 14:57
@vitek-karas
vitek-karas requested a review from a team as a code owner September 24, 2026 14:57
@vitek-karas

Copy link
Copy Markdown
Member Author

@jonathanpeppers @rolfbjarne could you please take a look if this is correct?

Comment thread docs/deployment/visual-studio-properties.md Outdated
Comment thread docs/migration/apple-projects.md Outdated
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
@learn-build-service-prod

Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans.

✅ No issues found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

Learn Build status updates of commit 8a1aa63:

✅ Validation status: passed

File Status Preview URL Details
docs/deployment/visual-studio-properties.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/android-projects.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/apple-projects.md ✅Succeeded View (>=net-maui-8.0)

For more details, please refer to the build report.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

PoliCheck Scan Report

The following report lists PoliCheck issues in PR files. Before you merge the PR, you must fix all severity-1 and severity-2 issues. The AI Review Details column lists suggestions for either removing or replacing the terms. If you find a false positive result, mention it in a PR comment and include this text: #policheck-false-positive. This feedback helps reduce false positives in future scans.

✅ No issues found

More information about PoliCheck

Information: PoliCheck | Severity Guidance | Term
For any questions: Try searching the learn.microsoft.com contributor guides or post your question in the Learn support channel.

@learn-build-service-prod

Copy link
Copy Markdown
Contributor

Learn Build status updates of commit 71851f8:

✅ Validation status: passed

File Status Preview URL Details
docs/deployment/visual-studio-properties.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/android-projects.md ✅Succeeded View (>=net-maui-8.0)
docs/migration/apple-projects.md ✅Succeeded View (>=net-maui-8.0)

For more details, please refer to the build report.

@vitek-karas

Copy link
Copy Markdown
Member Author

@rolfbjarne can you please re-review? It should be done - if you can merge it, please do so.

@rolfbjarne

Copy link
Copy Markdown
Member

I can't merge, but I think @jfversluis can

@jfversluis
jfversluis merged commit 63a5399 into dotnet:main Sep 29, 2026
8 checks passed
@vitek-karas
vitek-karas deleted the vitek-karas-doc-018-runtime-scoping branch September 29, 2026 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants