-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Fix Hot Reload profile detection for web apps #48909
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR fixes hot reload profile detection for web apps by updating the project capability checks and streamlining the web app detection logic. Key changes include:
- Adding a new IsWebApp extension method to correctly identify ASP.NET Core and WebAssembly projects.
- Revising the branching logic in HotReloadProfileReader to improve handling of web project capabilities.
- Updating delta applier instantiations and browser refresh support in CompilationHandler and BrowserConnector.
Reviewed Changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
wwwroot/index.html | New basic HTML file for Blazor WebAssembly startup |
wwwroot/css/app.css | Added an empty CSS class placeholder |
_Imports.razor | Added necessary using directives |
WatchAspire.Wasm.csproj | Updated project file with current target framework property and package references |
launchSettings.json | Added development launch settings for local testing |
Program.cs | Added minimal program entry point |
Pages/Index.razor | Added a simple index page |
App.razor | Updated routing configuration for the app |
WatchAspire.AppHost.csproj | Updated project references for host configuration |
ProjectGraphNodeExtensions.cs | Introduced new IsWebApp method using updated static lambda pattern |
HotReloadProfileReader.cs | Revised logic for determining hot reload profile for web apps |
CompilationHandler.cs | Updated delta applier creation with improved null checks |
BrowserConnector.cs | Adjusted web app detection with added clarifying comments |
Co-authored-by: Luke Parker <[email protected]>
return HotReloadProfile.BlazorWebAssembly; | ||
if (item.EvaluatedInclude == "WebAssembly") | ||
{ | ||
// We saw a previous project that was AspNetCore. This must he a blazor hosted app. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What if you receive the nodes in the opposite order (WebAssembly is in the list, and later AspNetCore)?
public static readonly MessageDescriptor WaitingForFileChangeBeforeRestarting = new("Waiting for a file to change before restarting ...", "⏳", MessageSeverity.Warning, s_id++); | ||
public static readonly MessageDescriptor WatchingWithHotReload = new("Watching with Hot Reload.", "⌚", MessageSeverity.Verbose, s_id++); | ||
public static readonly MessageDescriptor WatchingWithHotReload = new("Watching with Hot Reload.", WatchEmoji, MessageSeverity.Verbose, s_id++); | ||
public static readonly MessageDescriptor RestartInProgress = new("Restart in progress.", "🔄", MessageSeverity.Output, s_id++); | ||
public static readonly MessageDescriptor RestartRequested = new("Restart requested.", "🔄", MessageSeverity.Output, s_id++); | ||
public static readonly MessageDescriptor ShutdownRequested = new("Shutdown requested. Press Ctrl+C again to force exit.", "🛑", MessageSeverity.Output, s_id++); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One more emoji for the "Red Circle"?
dotnet-watch logic that distinguishes between hosted and standalone Blazor projects should not be applied to non-web projects (e.g. Aspire).
Fixes #48898