Stabilize WinUI extension E2E startup - #19947
Open
Ella Hathaway (ellahathaway) wants to merge 1 commit into
Open
Stabilize WinUI extension E2E startup#19947Ella Hathaway (ellahathaway) wants to merge 1 commit into
Ella Hathaway (ellahathaway) wants to merge 1 commit into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8ed7e984-c8a0-4c23-8947-fede1e23b15d
Ella Hathaway (ellahathaway)
requested a review
from Adam Ratzman (adamint)
as a code owner
September 4, 2026 19:46
Contributor
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 19947Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 19947" |
Copilot started reviewing on behalf of
Ella Hathaway (ellahathaway)
September 4, 2026 19:48
View session
Contributor
Tests selector0 / 99 PR test projects · 2 PR jobs · 0 advisory-only targets, from 2 changed files. Selected PR test projects (0 / 99)none — no PR-gated .NET test projects run for this change. Selected PR jobs (2)
Advisory workflow impact (0)none How these were chosen — grouped by what changedJob reasons
Selection computed for commit |
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The focused synchronization logic, regression coverage, and documentation are consistent and complete.
Pull request overview
Stabilizes WinUI extension E2E startup by waiting for Roslyn’s generated XAML definition before launching Aspire.
Changes:
- Adds a semantic C# project-load barrier.
- Verifies startup ordering through source-contract tests.
- Documents the WinUI synchronization requirement.
File summaries
| File | Description |
|---|---|
extension/src/test/e2eLaunchProfile.test.ts |
Verifies synchronization ordering. |
extension/src/test-e2e/winUiDebug.e2e.test.ts |
Waits for generated InitializeComponent. |
extension/CONTRIBUTING.md |
Documents the race and mitigation. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 0
- Review effort level: Balanced
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The Windows
winui-debugVS Code extension E2E shard can start Aspire while the C# language server is still loading the generated WinUI project. Both builds then invokeXamlCompiler.exeagainst the sameobj\...\input.json, intermittently causing a sharing violation and leaving the test waiting for a readiness marker that can never be written.This change opens
App.xaml.csand waits for the C# definition provider to resolve the XAML-generatedInitializeComponentmethod under the project'sobjdirectory before launching Aspire. That semantic barrier confirms Roslyn's design-time XAML pass has completed without replacing the real Aspire build with a prebuild or fixed delay. The synchronization contract is covered by the E2E launch-profile unit test and documented in the extension contributor guide.Validation:
corepack yarn compile-testscorepack yarn compilecorepack yarn compile-e2ecorepack yarn lintcorepack yarn unit-test --run out/test/e2eLaunchProfile.test.js(75 passed)winui-debugPR CI: initial job and repeat job passed. Repeat diagnostics show Roslyn completed the WinUI project load at20:32:41.631before Aspire started the AppHost build at20:32:42.840.The exact x64 shard cannot complete locally on this Windows ARM64 machine because C# 2.140.9's x64 Roslyn BuildHost fails under emulation with
BadImageFormatException; the PR's Windows x64 extension E2E job provides the architecture-matching verification.Fixes #19935
Checklist
<remarks />and<code />elements on your triple slash comments?This fix was generated using the fix-flaky-test skill.