Skip to content

fix(installer): wire MSI icon and add branded installer chrome#17

Merged
hoobio merged 1 commit into
mainfrom
fix/msi-icon-and-branded-chrome
Apr 27, 2026
Merged

fix(installer): wire MSI icon and add branded installer chrome#17
hoobio merged 1 commit into
mainfrom
fix/msi-icon-and-branded-chrome

Conversation

@hoobio
Copy link
Copy Markdown
Owner

@hoobio hoobio commented Apr 27, 2026

Summary

Fixes the missing icon on the installed Earmark entry in Add/Remove Programs and on the Start Menu shortcut, and brands the installer wizard with the Earmark logo (banner + Welcome/Exit dialog bitmap).

The icon issue is a WiX 5 compatibility quirk: WiX 5 dropped the Icon/@Name attribute, so the Id is used verbatim as the Icon table key. Without the .ico extension on the Id, the Shell shortcut renderer and ARP both fall back to the generic placeholder. This was also affecting the bitwarden-cmdpal installer; the same fix is going in there.

Changes

  • installer/Earmark.wxs:
    • Renamed Icon Id from EarmarkIcon to EarmarkIcon.ico so the Icon table key has the right extension; updated the matching ARPPRODUCTICON property and Shortcut Icon reference.
    • Added WixUIBannerBmp and WixUIDialogBmp WixVariables overriding the default WiX UI chrome.
  • installer/WixUIBannerBmp.bmp (493x58): horizontal banner shown on License / InstallDir / Verify / Progress dialogs. Logo right-aligned to avoid colliding with the dialog title text on the left.
  • installer/WixUIDialogBmp.bmp (493x312): full background for Welcome / Exit dialogs. Only the left ~164 px is visible; the strip uses a #1d1d1d panel for contrast with the light-cyan logo.
  • Both bitmaps generated from src/Earmark.App/Assets/logo.png.
  • .gitignore: exclude publish/, staging/, *.msi, *.wixpdb (local build outputs from validating the WiX changes).

Testing

  • Manual testing on a Windows 10 (19041+) or Windows 11 host
  • Tail of the latest log file under %LocalAppData%\Earmark\logs\ shows the expected Applied rule ... / Skip Set ... / Skip re-apply ... lines after the change
  • Unit tests added/updated under tests/Earmark.Core.Tests
  • Existing tests pass (dotnet test -p:Platform=x64) - no code changes
  • Validated locally: dotnet publish + wix build succeeds (exit 0); produced Earmark-1.0.0-x64.msi. Inspected the MSI with the Windows Installer COM API: Icon table key is EarmarkIcon.ico, ARPPRODUCTICON and Shortcut.Icon_ both reference it correctly.

Checklist

  • PR title follows Conventional Commits
  • Code builds without warnings - no .NET code changed
  • No emoji / gitmoji in PR title
  • Architecture boundary respected: only installer assets touched
  • CLAUDE.md / README / CONTRIBUTING updated if behavior, build steps, or schema changed - no behavior change

@hoobio hoobio enabled auto-merge (squash) April 27, 2026 09:30
@hoobio hoobio merged commit 7881d1c into main Apr 27, 2026
11 checks passed
hoobio pushed a commit that referenced this pull request Apr 27, 2026
This PR was generated automatically by
[release-please](https://github.com/googleapis/release-please).
---


## [0.1.4](v0.1.3...v0.1.4)
(2026-04-27)


### Bug Fixes

* **installer:** wire MSI icon and add branded installer chrome
([#17](#17))
([7881d1c](7881d1c))


### Performance Improvements

* **installer:** shrink MSI size
([#19](#19))
([5666084](5666084))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: release-please-hoobi[bot] <279189756+release-please-hoobi[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant