Skip to content

[✨ Triage] microsoft/aspire#15431 by EmilyFeng97 - [AspireE2E]After adding the Maui Aspire integration, rebuilding t ... #168

@MihuBot

Description

@MihuBot

Triage for microsoft/aspire#15431.
Repo filter: area-dashboard issues.
MihuBot version: 246635.
Ping MihaZupan for any issues.

This is a test triage report generated by AI, aimed at helping the triage team quickly identify past issues/PRs that may be related.
Take any conclusions with a large grain of salt.

Tool logs
microsoft/aspire#15431: [AspireE2E]After adding the Maui Aspire integration, rebuilding the myapp-windows project with error "Rebuilder resource for 'myapp-windows' not found." by EmilyFeng97
Extracted 5 search queries: Rebuilder resource for 'myapp-windows' not found, Rebuilder resource not found MAUI rebuild Aspire dashboard, Aspire AddMauiProject AddWindowsDevice rebuild missing rebuilder resource, aspire run MAUI Blazor Hybrid project rebuild fails rebuilder resource, missing rebuilder resource in Dashboard after adding Aspire.Hosting.Maui integration
Found 22 candidate issues
  • Pull Request #15133 (Mar 11 2026) - "Add rebuild command and change detection for project resources"
    Summary:

    • Implements a Rebuild lifecycle command for .NET ProjectResource instances. The flow: Stop the resource → run dotnet build via a hidden ProjectRebuilderResource (an ExecutableResource subclass) → stream build output into the main resource console with a "[build]" prefix → restart the resource on success.
    • Adds ProjectChangeDetectionService to detect source changes and surface a dashboard notification with a Rebuild button.
    • The rebuilder is created in ProjectResourceBuilderExtensions (i.e., attached to ProjectResource types) and is intentionally hidden/short‑lived (ExplicitStartupAnnotation). It is added only in run mode and guarded by checks (e.g., IsFileBasedApp) so single-file apps don't get a rebuilder.
    • Follow-up fixes in the PR addressed cancellation handling, localization/XLF formatting, and downgraded noisy 404 log output when short-lived rebuilder resources are deleted. Conclusions / relevance to this report:
    • The new "Rebuilder" concept and command were added in this PR, so the regression reported after bumping templates to 13.2 is likely related to this change.
    • Important: the rebuilder is added only for ProjectResource instances. If the MAUI Windows resource in your AppHost is not modeled as a ProjectResource (for example, if it's a platform ExecutableResource under a MauiProjectResource), the rebuilder may not be created for that specific dashboard resource — which would explain the "Rebuilder resource for 'myapp-windows' not found." Also check the IsFileBasedApp guards added in the PR: they can prevent rebuilder creation in some edge cases.
  • Issue #14970 (Mar 5 2026) - "Expose a rebuild command on project resources"
    Summary:

    • The original feature request that motivated #15133: add an explicit rebuild command that stops, rebuilds, and restarts project resources to improve workflow when watch/hot‑reload aren't sufficient. Conclusions / relevance:
    • #15133 implements this request; the new behavior/objects from that work are the likely cause of the observed regression (missing rebuilder resource for the MAUI Windows device).
  • Pull Request #12284 (Oct 22 2025) - "Add Aspire.Hosting.Maui (.NET MAUI) Windows integration"
    Summary:

    • Adds MAUI integration (AddMauiProject, AddWindowsDevice) and introduces MauiProjectResource and platform-specific resources (MauiWindowsPlatformResource). The Windows device resource is created as a platform resource that runs dotnet run for the Windows TFM. MAUI projects in this integration delay building until explicit start. Conclusions / relevance:
    • The MAUI Windows device is modeled as a platform/executable resource (MauiWindowsPlatformResource). Because the rebuild implementation in #15133 targets ProjectResource, there may be a mismatch: the dashboard resource you clicked ("myapp-windows") might not have an associated ProjectRebuilderResource created by the new logic. In other words, the rebuild command and the hidden rebuilder are tied to the ProjectResource model, but the MAUI Windows platform resource is a child/platform resource — investigate whether the rebuilder is registered on the MauiProjectResource (parent) or on the platform resource (child). This PR is the place to review how MAUI resources are represented in the app model.
  • Pull Requests / discussions adding other MAUI platforms (PR #11942, PR #12342, PR #12381, PR #12402 — Oct–Nov 2025)
    Summary:

    • These PRs flesh out MAUI support (multi‑platform, Windows/Android/MacCatalyst/iOS), with special handling for delayed builds, platform validation, and platform-specific startup/workarounds (Android/iOS need environment forwarding, dev tunnels, etc.). Conclusions / relevance:
    • MAUI integration intentionally defers the project build to explicit Start and models per-platform resources differently from classic ProjectResources. That design impacts how/where a rebuild resource should be attached. If the rebuilder addition logic assumed the classic ProjectResource shape, MAUI platform resources may be missed.
  • Issue #436 (Oct 2023) - "Dashboard should show custom resources"
    Summary:

    • Discusses dashboard data sources and the need to surface resources from the Distributed Application Model (not only DCP). The project moved toward using the app model as the source of truth and showing non‑DCP resource types. Conclusions / relevance:
    • The rebuild command and hidden rebuilder are new resource types/behaviors that interact with the app model and dashboard. If the dashboard is still querying DCP or expects only certain resource kinds, it may not show hidden rebuilder resources in the UI; however, PR #15133 explicitly made the rebuilder hidden, so the failure likely originates earlier (rebuilder not created) rather than the UI filtering it out.

Quick actionable pointers from the above findings

  • Inspect the distributed application model at runtime (or AppHost logs) to see whether a ProjectRebuilderResource was ever created for the MAUI project or for the "myapp-windows" resource. Look for log lines from the code paths added in #15133 (ProjectResourceBuilderExtensions / ProjectRebuilderResource creation).
  • Verify whether the MAUI Windows device is a ProjectResource or a platform child (MauiWindowsPlatformResource / ExecutableResource). If it's a platform resource, confirm whether #15133 intended to attach a rebuilder to the parent MauiProjectResource and whether the dashboard rebuild command is targeting the correct resource id/name.
  • Check the IsFileBasedApp / other guards added in #15133 — they may be preventing rebuilder creation for MAUI projects (or for single-file vs. project-based detection).
  • If you can, capture AppHost logs around resource creation and the time you press Rebuild; compare names used by the rebuild command with actual rebuilder resource names (PR added hidden naming conventions and short‑lived executables that can be deleted between operations).

If you want I can:

  • Point to the exact places in the merged PR to inspect (ProjectResourceBuilderExtensions.AddRebuilderResource, ProjectRebuilderResource, CommandsConfigurationExtensions wiring) and the MAUI integration files (MauiProjectResource / MauiWindowsPlatformResource) to help identify the mismatch, or
  • Draft a minimal repro AppHost listing and logging checks to determine whether the rebuilder was ever registered for the MAUI resource.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions