Lifecycle
| File | Responsibility |
|---|---|
FRBDK/Glue/Glue/Plugins/EmbeddedPlugins/AboutPlugin/AboutViewModel.cs |
Confirmation, download, staging, and helper hand-off. |
FRBDK/Glue/Glue/Plugins/EmbeddedPlugins/AboutPlugin/DailyBuildUpdateLauncher.cs |
Generates the detached PowerShell replacement helper. |
FRBDK/Glue/Glue/Plugins/EmbeddedPlugins/AboutPlugin/DailyBuildUpdateDiagnostics.cs |
Bounded lifecycle log at %LOCALAPPDATA%\FlatRedBall\GlueDailyBuildUpdate.log. |
FRBDK/Glue/Tests/GlueUnitTests/AboutPlugin/DailyBuildUpdateLauncherTests.cs |
Script parsing, path normalization, lifecycle, and diagnostic tests. |
The running editor stages GlueDailyBuild.zip beside its installation, starts the helper, exits, then the helper deletes the old directory, moves staging into place, and restarts Glue.
Landmines
FileManager.GetDirectorysupplies a trailing separator. ApplyPath.TrimEndingDirectorySeparatorbefore deriving the helper working directory; otherwise PowerShell runs inside and locks the directory it must delete.- Generated PowerShell must be parsed by a real
powershell.exetest. In interpolated strings, delimit a variable immediately followed by:as${variable}:. - Keep the lifecycle log. Its last successful phase separates host hand-off, helper startup/parsing, Glue exit, file replacement, and restart failures. On a real replacement failure, Restart Manager lock owners belong in that log.