Shell Releases
Feature
Configurable source generation — disable route constants via
ShinyMauiShell_GenerateRouteConstants or navigation extensions via ShinyMauiShell_GenerateNavExtensions MSBuild properties (empty/missing = enabled, false = disabled) Feature
Route-based naming — the
route parameter in [ShellMap] now drives the generated constant name and navigation method name (e.g., [ShellMap<HomePage>("Dashboard")] → Routes.Dashboard, NavigateToDashboard) Feature
Invalid route diagnostic — SHINY001 compiler error when the route value is not a valid C# identifier (hyphens, spaces, leading digits)
Enhancement
AddGeneratedMaps() is always generated — even before any [ShellMap] attributes exist — so you can wire up MauiProgram.cs immediately Enhancement
AddGeneratedMaps() now uses inline string literals instead of Routes.* constants, so it works correctly even when route constant generation is disabled Enhancement
When no route is specified, the generated name falls back to the page type name without the
Page suffix (e.g., [ShellMap<HomePage>] → Routes.Home)Migration from v2.1
Section titled “Migration from v2.1”- Route constant names may change if you specified explicit routes — e.g.,
Routes.Homefor[ShellMap<HomePage>("Dashboard")]is nowRoutes.Dashboard - Navigation extension method names change similarly —
NavigateToHomebecomesNavigateToDashboard - Routes with invalid C# identifiers (hyphens, spaces, leading digits) now produce compile errors — rename them to valid identifiers