docs: make execution alias step explicit for console apps in .NET and Rust guides#482
Conversation
Both the .NET and Rust guides build console apps by default, but buried the execution-alias setup as an optional/easy-to-skip step. Without the alias, `dotnet run` (and `winapp run --with-alias`) launches the app via AUMID activation, which opens a new window that closes immediately when a console app finishes — swallowing any output. dotnet guide: - Promote alias setup to its own step in section 4 (after init), covering both `winapp manifest add-alias` and the `WinAppRunUseExecutionAlias` csproj property. - Remove the buried "Console apps:" blockquote from section 5. - Slim section 7's duplicate alias section to point back to step 4. rust guide: - Reframe the existing alias section in step 4 to clearly state it is required for console apps (which is the cargo new default). - Remove the long manual XML alternative; `winapp manifest add-alias` does the same thing. - Add explicit "Skip this step if you're building a UI app" callout. Fixes #470 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the .NET and Rust packaging guides to make the execution-alias step explicit (and clearly required for console apps) so development runs keep stdout in the current terminal instead of launching via AUMID into a transient window.
Changes:
- .NET guide: promotes execution-alias setup into an explicit step (manifest alias + MSBuild property), and removes/reduces duplicated/“easy to miss” guidance later.
- Rust guide: reframes the alias step as required for
cargo newconsole apps, with clear “skip for UI app” guidance, and removes the long manual XML alternative.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| docs/guides/rust.md | Makes execution-alias required/explicit for default console apps and removes manual XML instructions. |
| docs/guides/dotnet.md | Adds a dedicated alias subsection (manifest + MSBuild property) and reduces redundant alias instructions later in the guide. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Build Metrics ReportBinary Sizes
Test Results✅ 783 passed, 1 skipped out of 784 tests in 400.9s (-2.6s vs. baseline) Test Coverage❌ 21.4% line coverage, 36.6% branch coverage · ✅ no change vs. baseline CLI Startup Time45ms median (x64, Updated 2026-04-21 18:17:01 UTC · commit |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
The manifest registers the alias with .exe (e.g., rust-app.exe), but users can invoke it as either 'rust-app' or 'rust-app.exe'. Addresses PR #482 review feedback. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Address review feedback on PR #482: Package.appxmanifest is now the default manifest filename. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fixes #470
Problem
Both the .NET and Rust guides build console apps by default (
dotnet new console/cargo new), but the execution-alias step was framed as an optional side-note. Users skip it and thendotnet run(orwinapp run --with-alias) launches the packaged app via AUMID activation — opening a new window that closes immediately when a console app finishes, swallowing all stdout.The repro in the issue was just ""follow the .NET guide"" — exactly what happens when the alias step is easy to miss.
Changes
docs/guides/dotnet.mdwinapp init), covering bothwinapp manifest add-aliasand adding<WinAppRunUseExecutionAlias>true</WinAppRunUseExecutionAlias>to the.csproj.dotnet run).winapp manifest add-aliasfor users who skipped it). Removed the long manual XML snippet.docs/guides/rust.mdcargo newdefault), with explicit ""skip if UI app"" guidance.winapp manifest add-aliasdoes the same thing in one command.The actual CLI/MSBuild support (
--with-alias,WinAppRunUseExecutionAlias,winapp manifest add-alias) already works correctly. This is purely a guide/framing fix.Verification
winapp manifest add-aliasand theWinAppRunUseExecutionAliasMSBuild property still match the live CLI / NuGet targets (dotnet-run-support.md,ManifestAddAliasCommand.cs, samplesamples/dotnet-app/dotnet-app.csproj).