Skip to content

docs: reconstruct AppHost SDK migration and required CLI bundle guidance - #1880

Draft
David Fowler (davidfowl) wants to merge 3 commits into
release/17.0from
docs/apphost-sdk-migration-replacement-20261013-f5ab7e34
Draft

David Fowler (davidfowl) wants to merge 3 commits into
release/17.0from
docs/apphost-sdk-migration-replacement-20261013-f5ab7e34

Conversation

@davidfowl

@davidfowl David Fowler (davidfowl) commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Reconstruct the AppHost SDK-removal documentation from the merged contracts in microsoft/aspire#20867, targeting the verified current release/17.0 branch. This is a new isolated replacement, not a recovery of lost prose or validation artifacts.

  • Add the migration guide and ASPIRE012 warning reference, with navigation entries.
  • Document the default Microsoft.NET.Sdk plus explicit AppHost/Dotnet packages and AddDotnetProject("service", "../Service/") directory paths. The new guide uses explained 17.x.x placeholders because the site's stable version substitution still resolves to 13.6.0.
  • Preserve staged SDK/AddProject compatibility and document the explicit IsAspireProjectResource/ReferenceOutputAssembly metadata needed after SDK removal.
  • Correct ASPIRE010 to an unsuppressible bundle opt-out error, retain ASPIRE007 legacy/pre-9 SDK guidance and ASPIRE009 invalid-path remedies, and update configuration and upgrade/release guidance.
  • Cover solution/CI service builds after removing project references, manual central package management/NU1008 adjustments, and file-based AppHost AOT defaults without changing service AOT guidance.

Exactly 12 scoped documentation/navigation files changed. Existing drafts #1853 (AddCSharpApp) and #1804 (testing) remain separate. The shared release notes and diagnostic overview are edited in different sections; this PR doesn't replace those drafts. Visual Studio follow-ups microsoft/aspire#20933 and #20934 are not claimed qualified by documentation or Linux builds. No installed skills-plugin capability is assumed.

Third-party links and affiliations

None. Added links target this documentation site and the Microsoft Aspire GitHub repositories.

Validation

Fresh checks on committed head 830285d00e88d7c628aa15bdb1910a8594597551:

  • Navigation ESLint with zero warnings: passed.
  • Native analytics contracts, redirects, and documentation filetree suites: 3 files, 15 tests passed.
  • Native data-file and skill-digest checks: passed.
  • Generated HTML checks: all 10 changed articles render; 180 internal article links and anchors resolve. Migration contracts, explicit upcoming-release versions, and the existing CLI-bundle anchor are present.
  • git diff --check: passed. Both new articles have committed history in a full-history checkout for Lunaria.
  • Full repository-standard pnpm build:production: failed, exit 137, after 22m57.825s. It generated 32,647 HTML route log entries and completed all 984 image optimizations, then was killed while Starlight was building the Pagefind search index. The environment exposes approximately 8 GiB RAM, no swap, and the cgroup reports oom_kill 1. The native full-site link-validation completion hook was not reached, so neither the full build nor full-site link acceptance is claimed.
  • ASPIRE012 aka.ms help redirect retry: DNS resolution failed (curl exit 6); external redirect publication is unverified.

The initial build was intentionally stopped after discovering that the site's stable version placeholder was inappropriate for the new migration examples. The corrected committed head received the fresh full attempt above; the stopped attempt is not counted as a pass. Logs, patch, and verified Git bundle are preserved separately, but the remote commits and this draft are the persistent deliverable.

Keep this PR as a draft until a sufficiently provisioned native production build completes search indexing and full-site link validation. Documentation checks don't establish service runtime or Windows/Visual Studio qualification.

🤖 Posted by Mona (AI Agent)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

Frontend HTML artifact ready

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

VS Code: Open PR #1880 artifacts

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

@IEvangelist

Copy link
Copy Markdown
Member

Hey, I was just looking at this PR...was the source PR in the product for this changing an existing diagnostic?
Compiler Warning ASPIRE010 | Aspire
This exists today as a warning, if we change the meaning of this in 17.0 - we're making a case where things can get really confusing. I'm not sure I know the right answer, but this could cause a lot of issues.

@alistairmatthews

Alistair Matthews (alistairmatthews) commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

To better understand David Pine (@IEvangelist)'s comment, I got Claude to compare the changes made by this PR to ASPIRE010. Thought it might be helpful here:

Aspect Current release/17.0 After PR #1880
Title Compiler Warning ASPIRE010 Compiler Error ASPIRE010
SEO title "Aspire CLI bundle opt-out warning" "The Aspire CLI bundle is required"
Message Says the project is configured with AspireUseCliBundle=false and offers two choices: set it to true, or suppress ASPIRE010 Says the project requires the CLI bundle, tells you to remove the property or set it to true and install the matching CLI from get.aspire.dev, and says ASPIRE010 can't be suppressed
Default of AspireUseCliBundle false true
When it fires When the property is false or not set (because unset meant false) Only when it's explicitly false. Leaving it unset doesn't trigger it
Scope Not stated C# AppHosts, both package-based ones and those that keep Aspire.AppHost.Sdk
Version history Introduced in 13.5 Same badge, plus: "Introduced as a warning in Aspire 13.5... an error in Aspire 17.0"
How to fix Set the property to true Remove the false setting or set it to true, and install a compatible Aspire CLI (links to the install page)
Suppression Includes a <NoWarn>$(NoWarn);ASPIRE010</NoWarn> example for keeping NuGet-restored dependencies Example removed. It now says NoWarn=ASPIRE010 doesn't suppress the error or make opting out valid
CLI resolution wording The fallback CLI is "paired with the AppHost SDK" The fallback CLI is "paired with Aspire.Hosting.AppHost" (matches the SDK removal)

So, for what it's worth, I think IEvangelist is right - a separate diagnostic would produce less confusion.

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.

3 participants