Add dev/debug startup flow and launch profiles

Handle design-time initialization and add a developer debug startup path: App now skips normal startup when in design mode and shows a DevDebugWindow when running in debug (unless a preview or apply-update command). CommandContext.IsDebugMode is extended to include DOTNET_ENVIRONMENT=Development via a new IsDevelopmentEnvironment helper. Program.Main and BuildAvaloniaApp are made public to aid tooling. Added multiple launchSettings profiles for debug and preview commands that set DOTNET_ENVIRONMENT=Development to simplify IDE debugging and UI previewing.
This commit is contained in:
lincube
2026-04-24 17:25:53 +08:00
parent ad3648a0b8
commit 403cf280bb
4 changed files with 91 additions and 5 deletions

View File

@@ -1,6 +1,14 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"Launcher (Debug Mode)": {
"commandName": "Project",
"commandLineArgs": "launch --debug",
"workingDirectory": "$(SolutionDir)",
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development"
}
},
"Launcher (Launch Mode)": {
"commandName": "Project",
"commandLineArgs": "launch",
@@ -9,6 +17,46 @@
"DOTNET_ENVIRONMENT": "Development"
}
},
"Launcher (Preview Debug Window)": {
"commandName": "Project",
"commandLineArgs": "preview-debug",
"workingDirectory": "$(SolutionDir)",
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development"
}
},
"Launcher (Preview Splash)": {
"commandName": "Project",
"commandLineArgs": "preview-splash",
"workingDirectory": "$(SolutionDir)",
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development"
}
},
"Launcher (Preview Error)": {
"commandName": "Project",
"commandLineArgs": "preview-error",
"workingDirectory": "$(SolutionDir)",
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development"
}
},
"Launcher (Preview Update)": {
"commandName": "Project",
"commandLineArgs": "preview-update",
"workingDirectory": "$(SolutionDir)",
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development"
}
},
"Launcher (Preview OOBE)": {
"commandName": "Project",
"commandLineArgs": "preview-oobe",
"workingDirectory": "$(SolutionDir)",
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development"
}
},
"Launcher (Update Check)": {
"commandName": "Project",
"commandLineArgs": "update check",