Skip to content

[docs] Document multithreaded .NET project builds (-mt) - #1744

Merged
Karol Zadora-Przylecki (karolz-ms) merged 3 commits into
release/13.6from
docs/pr-20337-36045520050-1-593aec49fb02ffbe
Sep 28, 2026
Merged

Karol Zadora-Przylecki (karolz-ms) merged 3 commits into
release/13.6from
docs/pr-20337-36045520050-1-593aec49fb02ffbe

Conversation

@aspire-repo-bot

Copy link
Copy Markdown
Contributor

Documents changes from microsoft/aspire#20337

@karolz-ms

Target branch: Targeting release/13.6 — the latest release branch on microsoft/aspire.dev — because release/14.0 (from the source PR milestone 14.0) does not exist there.

Why this PR is needed

microsoft/aspire#20337 adds multithreaded .NET project build support: Aspire now detects the dotnet SDK selected for each build context (honoring global.json) and, when the SDK supports the .NET SDK 11 RC1 -mt MSBuild switch, enables it for:

  • Coordinated traversal builds
  • File-based (.cs) app builds
  • Individual project rebuild commands

-mt was not previously documented anywhere on the docs site, and the existing "Coordinated builds and restore" section on the project resources page was the natural place for it since it already documents the build/restore pipeline this feature extends.

What was changed

Added a new "Multithreaded builds" subsection to integrations/dotnet/project-resources.mdx, right after the existing "Coordinated builds and restore" section. It explains:

  • That Aspire automatically applies -mt when the detected SDK supports it, with no configuration required
  • The SDK version floors: 11.0.100-rc.1 or later for project/traversal builds, and 11.0.100-rtm.26473.104 (or stable 11.0.100+) for file-based apps, since earlier .NET 11 prereleases lack the safe -mt argument forwarding and compiler-client mutex mitigation
  • That Aspire falls back to the existing build behavior when SDK version detection fails or the SDK doesn't meet the floor
  • A cross-reference to the existing rebuild-command docs on the hot reload/watch page

Files modified

  • src/frontend/src/content/docs/integrations/dotnet/project-resources.mdx — new "Multithreaded builds" subsection (1 file changed, 17 insertions)

No new pages were created; this is an update to an existing page.

Generated by PR Documentation Check for #20337 · copilot · auto · 85.3 AIC · ⌖ 11.4 AIC · ⊞ 20.1K · ◷

Documents the -mt MSBuild switch support added in microsoft/aspire#20337:
Aspire now detects the selected .NET SDK for coordinated traversal
builds, file-based app builds, and individual project rebuild commands,
and enables multithreaded task execution when the SDK supports it.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@aspire-repo-bot aspire-repo-bot Bot added the docs-from-code Copilot initiated issue from dotnet/aspire repo label Sep 24, 2026
@aspire-repo-bot

Copy link
Copy Markdown
Contributor Author

Frontend HTML artifact ready

The latest frontend build uploaded the frontend-dist artifact for PR #1744. Use the VS Code button below to open this PR with GitHub Artifacts Explorer and browse the built HTML locally.

VS Code: Open PR #1744 artifacts

This comment updates automatically when a new frontend build artifact is uploaded.

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

🟡 Changes recommended

The documented feature is not available in the targeted release/13.6 branch.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 Medium severity

Open (1)
What changed in this PR

Documents Aspire’s automatic multithreaded .NET builds using the -mt MSBuild switch.

Changes:

  • Adds SDK version requirements and fallback behavior.
  • Links to rebuild-command documentation.
  • Adds a “Multithreaded builds” subsection.
File Changes Review
src/​frontend/​src/​content/​docs/​integrations/​dotnet/​project-resources.mdx Adds multithreaded build documentation. Moderate issue (4 votes): the feature is absent from release/13.6; backport the product change or move the documentation.

💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@IEvangelist David Pine (IEvangelist) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Automated docs-accuracy review

Source of truth (Phase A): microsoft/aspire @ release/13.6, SHA 8536cc330bfb6b335c2666f72ba5856a33a169c8 (matches this PR's base branch).
Claims extracted: 7 (6 non-narrative) · verified 1 · verified-with-nuance 0 · unverifiable 5 · contradicted 0 · narrative 1.
Phase B (doc-tester): 1 route exercised · 0 critical · 1 warning.

Headline: This PR documents automatic multithreaded (-mt) .NET builds, a 14.0-only feature (microsoft/aspire#20337, milestone 14.0, merged to main). It does not exist in release/13.6, the branch this PR targets — so against the required source of truth the -mt behavior and its SDK-version floors are unverifiable. The technical content is accurate for 14.0/main. Please confirm the intended release/branch (or version-gate the section). Same branch-targeting pattern as other auto-generated docs-from-code PRs.

Verdict: COMMENT — no contradicted claims and no Phase B critical issues, but the feature is unverifiable on the target branch and there's one blind-user warning.


Phase A — Claim verification

-mt support is absent from release/13.6: the branch has no -mt, no Multithreaded build logic, and neither version floor (11.0.100-rc.1, 11.0.100-rtm.26473.104); #20337's merge commit 59831d7 is not an ancestor. On main every claim checks out (see the inline comment). One claim is independently verified against the docs: the cross-reference /app-host/hot-reload-and-watch/#recommended-workflow resolves to a real page and heading.

Per-claim evidence verified against main (14.0 context — NOT authoritative for this PR's release/13.6 target)
Claim main evidence
-mt applied to coordinated traversal + file-based + individual rebuild; global.json honored src/Aspire.Hosting/Lifecycle/DotnetBuildCommandEventingSubscriber.cs — IsAspireManagedDotnetBuild matches __dotnet-project-build(+-…) and ProjectRebuilderResource; .cs targets use the file-based check; args.Insert(Math.Min(2, …), "-mt"); global.json via DotnetSdkUtils.FindNearestGlobalJson + per-start callback re-evaluation
Project/traversal floor 11.0.100-rc.1 src/Aspire.Hosting/Utils/DotnetSdkUtils.cs — s_minimumMultiThreadedBuildVersion = "11.0.100-rc.1"
File-based floor 11.0.100-rtm.26473.104 (stable 11.0.100+ also qualifies) DotnetSdkUtils.cs — s_minimumFileBasedMultiThreadedBuildVersion = "11.0.100-rtm.26473.104"; SemVer precedence puts stable 11.0.100 above the prerelease floor
Earlier prereleases lack safe -mt forwarding + compiler-client mutex mitigation Comments in both files (referencing dotnet/sdk#56207 and dotnet/roslyn#85675)
Fallback when detection fails / below floor → omit -mt if (!supportsMultiThreadedBuild) return;; Supports* returns false for a null version

All accurate for 14.0.


Phase B — Doc-tester report (blind to microsoft/aspire source)

Focus area: new "Multithreaded builds" subsection on the project resources page.
Route exercised: /integrations/dotnet/project-resources/.

Category Passed Failed Warnings
Content accuracy 1 0 1
Components / structure 1 0 0
Links / anchors 1 0 0

Critical issues: none.

Warnings:

  1. No Aspire "available since" note for the automatic -mt behavior. The subsection documents the required .NET SDK floors but not which Aspire version began applying -mt. The deployed docs represent Aspire 13.5.x, so a user on the current Aspire wouldn't get -mt even with a qualifying .NET 11 SDK. Lower impact than an API example (the behavior is automatic — nothing to copy that would fail to compile), but the version gap is still worth a short note. Independently corroborates the Phase A branch mismatch.

Passed checks:

  • Route renders live (HTTP 200) with the expected reference structure.
  • Aside imported; <Aside type="note"> used correctly.
  • Cross-reference /app-host/hot-reload-and-watch/#recommended-workflow is site-relative, has a trailing slash, and the target page + ## Recommended workflow heading both exist → valid anchor.
  • Placement correct: new ### Multithreaded builds (H3) sits under the existing "Coordinated builds and restore" section.

Knowledge gaps / method disclosure:

  • Frontend node_modules is not installed and local pnpm build is disallowed by repo rule, so a full local Astro render was not performed. Validation combined the live deployed route (blind-user grounding) with static structural review of the added subsection.

@karolz-ms

Karol Zadora-Przylecki (karolz-ms) commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Not sure if we need this documentation change. The fact that we are enabling multithreaded builds is an implementation detail that developers hopefully will never need to know about.

David Pine (IEvangelist) added a commit that referenced this pull request Sep 28, 2026
…ps (#1780)

## Summary

<!-- Describe what this pull request changes and why. -->

Reconcile the 13.6 wiki audit and **all 25 open `docs-from-code`
proposals targeting `release/13.6`** against the actual release source.
Add missing canonical guidance rather than putting all coverage in
What's new. This is a new, isolated feature PR into `release/13.6`; it
does not update the release rollup #1599, merge or close another
proposal, or push directly to a release branch.

**Draft with explicit remaining packaging/validation gates:** the six
REPL walkthroughs are source-verified, but current publicly available
13.6 packages do not contain the late `WithRepl` exports. Generated API
catalogs have deliberately not been fabricated or refreshed from 14.x.
See the open checklist below.

### Evidence baseline

- Documentation base: `717442f6666948bcf77f3d704dc2dadf7c080ec2`.
- Product source of truth:
[`microsoft/aspire@e8fd6fbb954f50ccd2e66479538392f65e13e71d`](https://github.com/microsoft/aspire/tree/e8fd6fbb954f50ccd2e66479538392f65e13e71d),
current `release/13.6` at audit time. Source was read from that Git
object, not the stale source working directory.
- [13.6 wiki](https://github.com/microsoft/aspire/wiki/13.6-Change-log)
snapshot `8e01a371d4f16a1306e48174d4cf1fdeca714348`, whose cutoff is
product PR 20511. Later backports 20541/20546/20548 are included here.
- Proposal base branches alone were **not** used as proof of release
membership. Direct ancestry and known release backports were checked.
Four fallback-targeted proposals are excluded below.
- Wiki link corrections: its REPL link #1752 actually covers Sandboxes;
the REPL proposal is #1740. Its AOT link #1714 covers PFX certificates,
not AOT.

### Complete audit-gap checklist

Checked items mean documentation coverage is implemented, not that cloud
deployment or every product runtime scenario was executed.

- [x] **1. Dotnet API graduation:** correct removal to **13.6**, not
14.0, in What's new, both Dotnet guides, and the diagnostic page;
preserve the prerelease package caveat. This applies to core
`AddDotnetProject`, `DotnetProjectResource`, and related
`WithBuildEnvironment` overloads, not all uses of the diagnostic.
Source: microsoft/aspire#20496.
- [x] **2. Sandboxes:** remove obsolete API suppressions in the article
and deployment guide while preserving Azure service preview/access and
prerelease package limitations. Source: microsoft/aspire#20483.
- [x] **3. Docked REPL documentation:** all six
PostgreSQL/MySQL/MongoDB/SQL Server/Redis/Valkey guides plus the article
now cover opt-in `WithRepl`/`withRepl`, run-only availability, actual
client privileges, credential handling, and explicit exit versus closing
a viewer. Source: microsoft/aspire#20419, backport of
microsoft/aspire#20231. Package-backed checks remain open below.
- [x] **4. Terminal CLI flag:** update current 13.6 article,
`with-terminal`, and all three terminal command references. Preserve
`terminals.v1` and experimental hosting API distinctions. Current
configuration/schema data had no flag entry to remove; historical 13.5
notes remain historical. Source: microsoft/aspire#20548.
- [x] **5. First-party Rust:** rewrite both canonical Rust guides around
`Aspire.Hosting.Rust`; document Cargo versus application arguments,
typed targets, debugging, generated Dockerfiles, workspace context, ABI
constraints, and Toolkit migration. Bacon remains explicitly
Toolkit-only. Add exact first-party package mapping. Source:
microsoft/aspire#18906 and current Rust README.
- [x] **6. Agent setup:** align command reference, skills guide,
AI-agent guide, and article on MCP opt-in, `--mcp`,
chained/non-interactive behavior, seven-skill catalog, Project v2
migration, and Copilot app detection. Also fix stale default-selection
text: all applicable bundle skills are preselected; companion tools
remain opt-in. Sources: microsoft/aspire#19893, microsoft/aspire#20405,
microsoft/aspire#19820.
- [x] **7. Deno AppHost runtime:** document Deno 2+ detection, commands,
permissions, native watch/type checking, doctor, and `DENO_CERT`,
separately from Deno guest hosting. Source: microsoft/aspire#18627,
distinct from microsoft/aspire#18628.
- [x] **8. Native AOT / Fluent UI v5:** concise article, dashboard
exploration, and standalone guidance; automatic packaged-dashboard
selection, no invented performance figures. Source:
microsoft/aspire#19565 and release packaging sources.
- [x] **9. NuGet:** document bundled in-process operations, credential
providers, non-interactive authentication, and realistic
troubleshooting. Correct the proposal's `dotnet nuget locals`
authentication advice: cache commands do not authenticate a feed.
Source: microsoft/aspire#20391.
- [x] **10. Multithreaded builds:** article and coordinated-build guide
explain `-mt`, SDK detection, distinct project/file-based SDK floors,
and fallback. Source: microsoft/aspire#20441.
- [x] **11. Radius:** add a real deployment guide with C#/TypeScript
setup, recipe-backed connections versus local endpoints, per-resource
credential behavior, unauthenticated Redis limitation, secret exposure
boundaries, and actionable runtime diagnostics 070–091. Wire navigation
and exact package mapping. Source: microsoft/aspire#19555 and release
README.
- [x] **12. Connection aliases:** replace contradictory no-encoding
guidance, retain composed logical-key-first lookup and portable-target
behavior, explain collision detection and custom-publisher metadata.
Source: microsoft/aspire#19729.
- [x] **13. Connector Namespace / Toolbox / provisioning:** add
Connector Namespace walkthrough, security/consent/revocation limits and
mapping/sidebar; add Foundry Toolbox walkthrough, connection properties,
roles, index prerequisites, approval enforcement boundaries, immutable
versions, and existing-resource behavior. Extend existing Azure
provisioning guide without a duplicate page. Sources:
microsoft/aspire#19024, microsoft/aspire#17742, microsoft/aspire#20131.
- [x] **14. Remaining high-impact items:** article covers opt-in
manifest-aware DNX and new-template CLI bundling (existing SDK guides
retained), migration skill and Copilot app detection; canonical inline
`CsiVolumeSourceV1`/`VolumeV1.Csi` example, management links, Cosmos
vNext telemetry, and AI Inference `GetModelInfoAsync`/`/info` health
checks with `DisableHealthChecks`. No Azure OpenAI health-check claim.
Sources: microsoft/aspire#19310, microsoft/aspire#19076,
microsoft/aspire#19826, microsoft/aspire#20070, microsoft/aspire#15671,
microsoft/aspire#15969.
- [x] **15. All 25 proposal dispositions:** listed below, including
newer dashboard backports and four exclusions. Existing Sandbox
inference coverage is retained rather than copied from a stale draft.
- [ ] **16. Refresh generated API/catalog/Twoslash data from an official
post-backport 13.6 build.** Existing `26473.12`/`a11eca96` data remains
untouched. The newest public `dotnet9` feed package checked,
`13.6.0-preview.1.26474.10` at
`43496a2a306c81c862c947b11b4f4e5494b6fe08`, still has no Redis
`WithRepl` in its actual package XML. Do not use 14.x, hand-edit
declarations, or attribute source changes to older binaries.
- [ ] **Validate the six REPL examples against that actual post-backport
SDK and running clients.** Their new TypeScript fences are plain
TypeScript, not annotated with unsupported Twoslash data. No existing
diagnostics are allowlisted or suppressed; no generated API exports are
fabricated. Enable Twoslash when the genuine catalog catches up.

### All 25 open proposal dispositions and provenance

Text is selectively adapted from these proposals, not merged wholesale.
#1778 and #1748 are authored by @sebastienros; the other proposals are
authored by the Aspire repo bot. The table credits the associated
product-change authors where supplied by the proposals. Existing PRs
remain open and unchanged.

| Docs PR | Release source / credited product author | Disposition |
| --- | --- | --- |
| #1778 | microsoft/aspire#19729 — @sebastienros | **Adopted:**
canonical connection-string alias correction, including logical-first
resolution and migration. |
| #1771 | microsoft/aspire#20481 — @sebastienros | **Excluded:** flat
polyglot feature keys are not in the audited release tip; no verified
backport. Preserve release key names. |
| #1770 | microsoft/aspire#20525 → microsoft/aspire#20548 — @mitchdenny
| **Corrected/adopted:** command guides plus the still-current 13.6
article, which the proposal incorrectly treats as historical. |
| #1769 | microsoft/aspire#20416 — @JamesNK | **Excluded:** brand hover
change has no verified 13.6 membership/backport. |
| #1768 | microsoft/aspire#20523 → microsoft/aspire#20546 — @JamesNK |
**Adopted:** run pin/unpin preserves selector and current selection. |
| #1766 | microsoft/aspire#20537 → microsoft/aspire#20541 — @mitchdenny
| **Adopted:** terminal dock empty state. |
| #1761 | microsoft/aspire#20490 → microsoft/aspire#20496 — @eerhardt |
**Corrected:** graduation is 13.6, package remains prerelease,
Blazor-specific exception retained. |
| #1760 | microsoft/aspire#20436 — @eerhardt | **Excluded:** CLI
net11/tools-any retarget is not in the audited release; no fallback-base
inference. |
| #1748 | microsoft/aspire#20131 — @sebastienros | **Adopted:** extend
existing provisioning guide with service-specific models/lookups and
projection limits. |
| #1744 | microsoft/aspire#20337 → microsoft/aspire#20441 — @karolz-ms |
**Adopted:** precise SDK-conditional multithreaded build coverage. |
| #1740 | microsoft/aspire#20231 → microsoft/aspire#20419 — @mitchdenny
| **Adapted:** all six guides; TypeScript-first tabs, source-verified
lifecycle/security. Actual post-backport SDK/runtime gate is open above.
|
| #1738 | microsoft/aspire#20158 → microsoft/aspire#20405 — @karolz-ms |
**Partly already covered / completed:** existing seven-skill catalog
retained; add project migration guidance and correct command
catalog/defaults. Do not misclassify the bundled skill as a companion
tool. |
| #1735 | microsoft/aspire#20334 — @karolz-ms | **Excluded:** enhanced
startup errors are not in the audited release; no verified backport. |
| #1731 | microsoft/aspire#19847 → microsoft/aspire#20391 — @eerhardt |
**Corrected/adopted:** in-process NuGet and real authenticated-restore
troubleshooting, not cache-command authentication. |
| #1719 | microsoft/aspire#20299 → microsoft/aspire#20407 — @JamesNK |
**Corrected/adopted:** cookie naming/scoping; identical names can
collide but do not guarantee cross-dashboard cookie decryptability or
shared sign-in. |
| #1664 | microsoft/aspire#20011 — @maddymontaquila | **Adopted:**
concise Azure environment icon release note. |
| #1628 | microsoft/aspire#17742 — @davidfowl | **Adapted/expanded:**
canonical Toolbox examples, consumer contract, role/index prerequisites,
approval/security and concurrency limits. |
| #1623 | microsoft/aspire#19810 — @mitchdenny | **Already covered:**
current Sandbox guide/article already describe compute inference,
explicit selection and external endpoints. Preserve that guidance while
removing obsolete suppressions. |
| #1620 | microsoft/aspire#19243 — @sebastienros | **Adapted:** AKS
credential-before-Helm cleanup and destructive-operation warning; omit
misleading ambient-context workaround. |
| #1614 | microsoft/aspire#19870 — @sebastienros | **Adopted:** typed
callback handle behavior in extension authoring and article. |
| #1574 | microsoft/aspire#19430 — @mitchdenny | **Adapted:** canonical
hostname inheritance, explicit-host precedence, catch-all default
backend. |
| #1570 | microsoft/aspire#19590 — @karolz-ms | **Adopted:** Dev Tunnel
URL regression troubleshooting. |
| #1565 | microsoft/aspire#19429 — @mitchdenny | **Corrected/adopted:**
Helm embedded parameters with real `refExpr` and `addParameter(name, {
value })`, not stringifying a handle or using an invalid actual-SDK
overload. |
| #1564 | microsoft/aspire#19026 — @karolz-ms | **Corrected/adopted:**
C#/TypeScript Dotnet gateway walkthrough. Retain both experimental
diagnostics; remove obsolete run-only restriction after
microsoft/aspire#19997 publishing support. Avoid imported ambiguous API
reference. |
| #1499 | microsoft/aspire#19248 — @IEvangelist | **Adopted:** describe
exact secret-value redaction and embedded-secret limit; release article
already covered the fix. |

### Important source-verified corrections to proposals / earlier audit
assumptions

-
[`BlazorGatewayExtensions.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Hosting.Blazor/BlazorGatewayExtensions.cs):
`AddDotnetProjectBlazorGateway` and the Dotnet `WithBlazorClientApp`
overload still carry `ASPIREDOTNETPROJECT001`; the class carries
`ASPIREBLAZOR001`. They share `WithBlazorClientAppCore`/`WithBlazorApp`
and the publish-companion path. Thus neither blanket diagnostic
retirement nor the proposal's old run-only claim is correct.
-
[`SkillDefinition.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Cli/Agents/SkillDefinition.cs)
sets bundled skills' `IsDefault=true`;
[`AgentInitCommand.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Cli/Commands/AgentInitCommand.cs)
selects the applicable catalog defaults for both flows. MCP has its own
standalone-only binding.
-
[`TypeScriptAppHostToolchainResolver.cs`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Cli/Projects/TypeScriptAppHostToolchainResolver.cs)
is the source for Deno flags and certificate variable; guest Deno
hosting is separate.
- [`Radius
README`](https://github.com/microsoft/aspire/blob/e8fd6fbb954f50ccd2e66479538392f65e13e71d/src/Aspire.Hosting.Radius/README.md)
supplies the resource-specific credential rules and publish diagnostics,
not assumptions about local endpoints.

## Third-party links and affiliations

<!-- List third-party links and disclose material affiliations. -->

Links point to official Microsoft Learn, VS Code Marketplace debugger
extensions, Rust/Cargo/Bacon documentation, Radius documentation, and
source repositories. No sponsorship, commercial endorsement, or
affiliation claim is introduced. Maintainers should supply any personal
affiliation disclosure required by policy; automation has not inferred
one.

## Validation

<!-- List the checks you ran or explain why validation isn't needed. -->

- **97 passing focused unit checks** across API-reference
authoring/rendering, Twoslash blocks, file-tree formatting, CLI
configuration schema, SEO lengths, and resource catalog.
- **82 passing structured-data checks**, including exact integration
mapping uniqueness and page resolution.
- **11 C# samples compile**, zero warnings/errors, using genuine
`13.6.0-preview.1.26473.12` packages. Scope: Rust, Connector Namespace,
Radius, Toolbox, inline CSI, Helm, Blazor gateway, and provisioning.
`Projects.Api/Worker/Client` use compile-only `IProjectMetadata`
stand-ins; no claim of running those apps or provisioning cloud
resources.
- **10 TypeScript samples pass `tsc`** under `strict`, `NodeNext`, and
`ES2022` against three **unmodified actual SDK files**, not just the
site's declaration bundle. The fixture uses the exact `e8fd6fbb` release
`AtsCapabilityScanner` and genuine `26473.12`
TypeSystem/code-generator/integration binaries, whose informational
source is `a11eca96`. This is an isolated local generation fixture,
**not** a claim that official CLI generation or a new packaged release
was tested. An attempted restore with the older handed-off local CLI
could not discover an AppHost server; the bounded direct generator
fixture was used instead.
- The SDK scan is **not globally warning-free**: it reports a Radius
`withContainerImage` collision on `CSharpAppResource` and an App
Configuration `createRoleAssignment` overload collision. None of the
compiled examples calls those colliding methods; the warnings are
retained in evidence, not suppressed, and no generated declarations were
edited.
- Browser: Connector Namespace, Radius, both Rust pages, Foundry
hosting, and What's new return **HTTP 200**, correct headings, and no
rendered Twoslash errors. New guide/article page-local anchors and the
cross-page Blazor anchor resolve. Connector/Radius mobile layouts have
no horizontal overflow; Connector language-tab interaction works.
Standalone Astro preview emits expected `/api/live` 404s because
StaticHost is not running.
- `git diff --check` passes. No production `pnpm build`, cloud
deployment, REPL runtime session, full product suite, or blanket
validation of every pre-existing example was performed.
- Generated C#/TypeScript API data, declaration bundles, integration
catalogs, image catalogs, and contributor data are unchanged. Only the
authored package-to-guide mapping is updated.

**Before merging:** complete the two packaging/REPL checkboxes above,
inspect CI, and obtain human review. This PR intentionally does not
close or merge the source documentation proposals.

---------

Co-authored-by: David Pine <7679720+IEvangelist@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Comment on lines +486 to +491
`-mt` is applied automatically when the detected SDK supports it — no configuration is required. Project
and generated traversal builds require .NET SDK `11.0.100-rc.1` or later. File-based (`.cs`) app builds
require the later `11.0.100-rtm.26473.104` SDK build (or a stable `11.0.100` or newer release), because
earlier .NET 11 prereleases lack the safe `-mt` argument forwarding and compiler-client mutex mitigation
that file-based builds depend on. When SDK version detection fails, or the selected SDK doesn't meet the
required floor, Aspire omits `-mt` and falls back to the existing build behavior.

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.

Suggested change
`-mt` is applied automatically when the detected SDK supports it — no configuration is required. Project
and generated traversal builds require .NET SDK `11.0.100-rc.1` or later. File-based (`.cs`) app builds
require the later `11.0.100-rtm.26473.104` SDK build (or a stable `11.0.100` or newer release), because
earlier .NET 11 prereleases lack the safe `-mt` argument forwarding and compiler-client mutex mitigation
that file-based builds depend on. When SDK version detection fails, or the selected SDK doesn't meet the
required floor, Aspire omits `-mt` and falls back to the existing build behavior.
`-mt` is applied automatically when the detected SDK supports it — no configuration is required. Project
and generated traversal builds require .NET SDK `11.0.100-rc.1` or later. File-based (`.cs`) app builds
require the later `11.0.100-rtm.26473.104` SDK build (or a stable `11.0.100` or newer release).

Copilot this "aside" note can be made shorter--no need to explain that if -mt is not supported, we do not attempt to use it--it would be pointless. Apply the suggested change.

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.

Applied the suggestion — the note now ends after the SDK version floors, without the fallback explanation. Commit 8da6d2f.

Co-authored-by: karolz-ms <15271049+karolz-ms@users.noreply.github.com>
@karolz-ms

Copy link
Copy Markdown
Contributor

Copilot resolve the merge conflicts in this pull request

…-36045520050-1-593aec49fb02ffbe

# Conflicts:
#	src/frontend/src/content/docs/integrations/dotnet/project-resources.mdx

Co-authored-by: karolz-ms <15271049+karolz-ms@users.noreply.github.com>

Copilot AI commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

Copilot resolve the merge conflicts in this pull request

Merged release/13.6 into this branch and resolved the conflict in project-resources.mdx — kept the shortened -mt note (per your earlier suggestion) and preserved the new "Migrate from legacy project resources" section from the base branch. Merge commit ada680f.

@karolz-ms
Karol Zadora-Przylecki (karolz-ms) merged commit e0f3495 into release/13.6 Sep 28, 2026
16 checks passed
@karolz-ms
Karol Zadora-Przylecki (karolz-ms) deleted the docs/pr-20337-36045520050-1-593aec49fb02ffbe branch September 28, 2026 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs-from-code Copilot initiated issue from dotnet/aspire repo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants