From 241934f9136444752fcb4d8ab3685ed07a021b4d Mon Sep 17 00:00:00 2001 From: Rod Christiansen Date: Fri, 31 Jul 2026 20:51:03 -0700 Subject: [PATCH] Rename GUI app to Managed Bootstrap Install and fix missing icon The WinUI app builds as 'Managed Bootstrap Install.exe' (still installed to Program Files\BootstrapMate), matching Cimian's Managed Software Center pattern, for uniformity across the managed-client tooling. The CLI stays managedbootstrapinstall.exe. ApplicationIcon was never set, so the exe, Start Menu shortcut and Add/Remove Programs entry all showed the generic .NET icon; the csproj now embeds Assets\BootstrapMate.ico and the MSI sets ARPPRODUCTICON. Registry keys, the Self-Heal task name, UpgradeCode and the BootstrapMate-- artifact names are unchanged. the tracking item --- .github/workflows/ci.yml | 2 +- .github/workflows/release.yml | 4 ++-- build.ps1 | 4 ++-- installer/BootstrapMate.Installer.wixproj | 6 +++--- installer/Product.wxs | 16 ++++++++++------ src/BootstrapMate.App/BootstrapMate.App.csproj | 5 ++++- src/BootstrapMate.App/MainWindow.xaml | 4 ++-- src/BootstrapMate.App/MainWindow.xaml.cs | 2 +- src/BootstrapMate.App/ViewModels/RunViewModel.cs | 6 +++--- src/BootstrapMate.App/Views/PrefsPage.xaml | 2 +- src/BootstrapMate.App/Views/RunPage.xaml | 2 +- src/BootstrapMate.App/Views/RunPage.xaml.cs | 2 +- 12 files changed, 31 insertions(+), 24 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70a57ba..84e3dcc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -67,7 +67,7 @@ jobs: --self-contained true --verbosity minimal - - name: Build GUI App (BootstrapMate.exe) + - name: Build GUI App (Managed Bootstrap Install.exe) run: > dotnet publish src/BootstrapMate.App/BootstrapMate.App.csproj --configuration Release diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8bac4c7..7017eb5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -68,7 +68,7 @@ jobs: --self-contained true --verbosity minimal - - name: Build GUI App (BootstrapMate.exe) + - name: Build GUI App (Managed Bootstrap Install.exe) run: > dotnet publish src/BootstrapMate.App/BootstrapMate.App.csproj --configuration Release @@ -175,7 +175,7 @@ jobs: $zipDir = Join-Path $env:RUNNER_TEMP "zip-$arch" New-Item -ItemType Directory -Path $zipDir -Force | Out-Null Copy-Item "publish/executables/$arch/managedbootstrapinstall.exe" $zipDir/ - if (Test-Path "publish/app/$arch/BootstrapMate.exe") { + if (Test-Path "publish/app/$arch/Managed Bootstrap Install.exe") { Copy-Item "publish/app/$arch/*" $zipDir/ -Recurse } Compress-Archive -Path "$zipDir/*" -DestinationPath "$staging/BootstrapMate-$arch-$version.zip" -Force diff --git a/build.ps1 b/build.ps1 index a371a97..e2ff128 100644 --- a/build.ps1 +++ b/build.ps1 @@ -1311,7 +1311,7 @@ function Build-AppArchitecture { throw "dotnet publish failed for App with exit code: $LASTEXITCODE" } - $executablePath = Join-Path $outputDir "BootstrapMate.exe" + $executablePath = Join-Path $outputDir "Managed Bootstrap Install.exe" if (-not (Test-Path $executablePath)) { throw "Expected App executable not found: $executablePath" @@ -2027,7 +2027,7 @@ try { Architecture = $arch Success = ($appSuccess -eq $true) Unsigned = ($appSuccess -eq "unsigned") - Path = "publish\app\$arch\BootstrapMate.exe" + Path = "publish\app\$arch\Managed Bootstrap Install.exe" } } diff --git a/installer/BootstrapMate.Installer.wixproj b/installer/BootstrapMate.Installer.wixproj index e9a02cb..1e40ff0 100644 --- a/installer/BootstrapMate.Installer.wixproj +++ b/installer/BootstrapMate.Installer.wixproj @@ -43,7 +43,7 @@ than the harvester script's stack trace. --> + Condition="Exists('$(AppDir)\Managed Bootstrap Install.exe')"> @@ -54,8 +54,8 @@ - + diff --git a/installer/Product.wxs b/installer/Product.wxs index 63daf6c..ed2d09e 100644 --- a/installer/Product.wxs +++ b/installer/Product.wxs @@ -8,7 +8,7 @@ - + + + + - + @@ -49,7 +53,7 @@ - @@ -111,14 +115,14 @@ diff --git a/src/BootstrapMate.App/BootstrapMate.App.csproj b/src/BootstrapMate.App/BootstrapMate.App.csproj index dbc6443..a5341a8 100644 --- a/src/BootstrapMate.App/BootstrapMate.App.csproj +++ b/src/BootstrapMate.App/BootstrapMate.App.csproj @@ -10,7 +10,10 @@ enable latest BootstrapMate.App - BootstrapMate + Managed Bootstrap Install + Managed Bootstrap Install + Managed Bootstrap Install + Assets\BootstrapMate.ico app.manifest false true diff --git a/src/BootstrapMate.App/MainWindow.xaml b/src/BootstrapMate.App/MainWindow.xaml index 951cc8d..8e5e9fc 100644 --- a/src/BootstrapMate.App/MainWindow.xaml +++ b/src/BootstrapMate.App/MainWindow.xaml @@ -3,7 +3,7 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:views="using:BootstrapMate.App.Views" - Title="BootstrapMate"> + Title="Managed Bootstrap Install"> @@ -14,7 +14,7 @@ - diff --git a/src/BootstrapMate.App/MainWindow.xaml.cs b/src/BootstrapMate.App/MainWindow.xaml.cs index 46448d1..6a07069 100644 --- a/src/BootstrapMate.App/MainWindow.xaml.cs +++ b/src/BootstrapMate.App/MainWindow.xaml.cs @@ -16,7 +16,7 @@ public MainWindow() { InitializeComponent(); - Title = "BootstrapMate"; + Title = "Managed Bootstrap Install"; // DPI-aware sizing clamped to available screen work area var hwnd = WinRT.Interop.WindowNative.GetWindowHandle(this); diff --git a/src/BootstrapMate.App/ViewModels/RunViewModel.cs b/src/BootstrapMate.App/ViewModels/RunViewModel.cs index 0ac4479..d3d99e4 100644 --- a/src/BootstrapMate.App/ViewModels/RunViewModel.cs +++ b/src/BootstrapMate.App/ViewModels/RunViewModel.cs @@ -63,7 +63,7 @@ private async Task RunAsync(PrefsViewModel prefs) var cliPath = FindCliExecutable(); if (cliPath is null) { - AppendLine("[ERROR] CLI executable not found. Install BootstrapMate or check the install path.", LogLevel.Error); + AppendLine("[ERROR] CLI executable not found. Install Managed Bootstrap Install or check the install path.", LogLevel.Error); IsRunning = false; return; } @@ -101,7 +101,7 @@ private async Task RunAsync(PrefsViewModel prefs) return; } - AppendLine($"[i] BootstrapMate started (PID: {_cliProcess.Id})", LogLevel.Info); + AppendLine($"[i] Managed Bootstrap Install started (PID: {_cliProcess.Id})", LogLevel.Info); // Tail the log file in background var tailTask = TailLogFileAsync(logDir, existingLogs, _cts.Token); @@ -121,7 +121,7 @@ private async Task RunAsync(PrefsViewModel prefs) } catch (System.ComponentModel.Win32Exception) { - AppendLine("[ERROR] Elevation denied — BootstrapMate requires administrator privileges.", LogLevel.Error); + AppendLine("[ERROR] Elevation denied — Managed Bootstrap Install requires administrator privileges.", LogLevel.Error); } catch (Exception ex) { diff --git a/src/BootstrapMate.App/Views/PrefsPage.xaml b/src/BootstrapMate.App/Views/PrefsPage.xaml index f7af84c..ce44320 100644 --- a/src/BootstrapMate.App/Views/PrefsPage.xaml +++ b/src/BootstrapMate.App/Views/PrefsPage.xaml @@ -17,7 +17,7 @@ - diff --git a/src/BootstrapMate.App/Views/RunPage.xaml b/src/BootstrapMate.App/Views/RunPage.xaml index 074f1b7..62b46c7 100644 --- a/src/BootstrapMate.App/Views/RunPage.xaml +++ b/src/BootstrapMate.App/Views/RunPage.xaml @@ -27,7 +27,7 @@ diff --git a/src/BootstrapMate.App/Views/RunPage.xaml.cs b/src/BootstrapMate.App/Views/RunPage.xaml.cs index 5ffeabe..7b51f9b 100644 --- a/src/BootstrapMate.App/Views/RunPage.xaml.cs +++ b/src/BootstrapMate.App/Views/RunPage.xaml.cs @@ -87,7 +87,7 @@ private void UpdateRunningState() else { RunIcon.Glyph = "\uE768"; // Play icon - RunText.Text = "Run BootstrapMate"; + RunText.Text = "Run Managed Bootstrap Install"; RunButton.Background = null; // Reset to default RunningProgress.IsActive = false; RunningLabel.Visibility = Visibility.Collapsed;