Non-elevated tray shortcuts wxs; NOTARIZE-CHECKLIST; backlog scaffold section.
4.5 KiB
Windows WiX tray presence (skeleton)
Non-elevated per-user WiX MSI skeleton for Start Menu + Startup → verae-tray.ps1.
This is not the full commercial Print Stamp MSI (printers, Program Files,
Authenticode, elevated custom actions). Day-to-day tray presence without WiX
remains ../scripts/build-tray-startmenu.ps1.
Full product install remains NSIS (../installer-windows.nsi). Commercial gaps:
docs/COMMERCIAL-INSTALLER-BACKLOG.md.
Install
Requires WiX Toolset on a Windows host (or CI Windows runner). Without
candle/light (or WiX v4 wix build), no MSI is produced — use the
PowerShell Start Menu stub instead.
WiX v3 (this skeleton’s XML):
REM Add candle.exe + light.exe to PATH, e.g.:
REM set PATH=%PATH%;%ProgramFiles(x86)%\WiX Toolset v3.14\bin
WiX v4+ (dotnet tool install --global wix): adapt namespaces / Package
element; authoring here is WiX v3.
Stage tray scripts from this repo before building:
set WIXDIR=platform\windows\wix
set STAGE=%WIXDIR%\Stage
mkdir %STAGE% 2>nul
copy /Y platform\windows\scripts\verae-tray.ps1 %STAGE%\
copy /Y platform\windows\scripts\common.ps1 %STAGE%\
Usage
What the package does
| Item | Behavior |
|---|---|
| Install scope | perUser, InstallPrivileges=limited (no UAC) |
| Files | %LocalAppData%\Verae\Tray\verae-tray.ps1 (+ common.ps1) |
| Start Menu | Programs\Verae\Verae Tray.lnk → PowerShell STA + tray script |
| Startup | Startup\Verae Tray.lnk (same idea as install-tray-startup.ps1) |
| IPP | Unchanged — tray only uses GET /status / GET /queue |
What it does not do
Elevated Program Files install, printers, scheduled helper, Authenticode, NSIS key wizard parity, machine-wide Start Menu under ProgramData.
Build (WiX v3 candle / light)
From repo root on Windows:
set WIXDIR=platform\windows\wix
set STAGE=%WIXDIR%\Stage
set OUT=%WIXDIR%\out
set VER=0.3.6
mkdir %STAGE% 2>nul
mkdir %OUT% 2>nul
copy /Y platform\windows\scripts\verae-tray.ps1 %STAGE%\
copy /Y platform\windows\scripts\common.ps1 %STAGE%\
candle.exe -nologo -out %OUT%\ ^
-dProductVersion=%VER% ^
-dStageDir=%CD%\%STAGE% ^
%WIXDIR%\VeraeTrayShortcuts.wxs ^
%WIXDIR%\VeraeTrayShortcutsFragment.wxs
light.exe -nologo -out %OUT%\VeraeTray-%VER%-peruser.msi ^
%OUT%\VeraeTrayShortcuts.wixobj ^
%OUT%\VeraeTrayShortcutsFragment.wixobj
Notes:
- Set
VERfrominternal/job.HelperVersion(seedocs/PACKAGING.md), or pass-dProductVersion=explicitly. The.wxsdefaults to0.3.6when unset (HelperVersion at scaffold time). Product Id="*"generates a new ProductCode per build;UpgradeCodeis fixed for major-upgrade of this tray presence package only.- Skeleton is UI-less (silent-friendly). For WixUI_Minimal, uncomment
UIRef/WixUILicenseRtfinVeraeTrayShortcuts.wxs, addLicense.rtf, and pass-ext WixUIExtensiontolight.
Silent install (per-user, no elevation):
msiexec /i VeraeTray-0.3.6-peruser.msi /qn VERAE_IPP_ADDR=127.0.0.1:8631
Uninstall via ARP (Verae Tray (presence)) or msiexec /x {ProductCode} /qn.
Files in this folder
| File | Role |
|---|---|
VeraeTrayShortcuts.wxs |
Per-user Product + file components |
VeraeTrayShortcutsFragment.wxs |
Start Menu + Startup shortcut fragment |
README.md |
This file |
Relation to other Windows paths
| Path | Role |
|---|---|
../scripts/verae-tray.ps1 |
Runtime tray (source staged into MSI) |
../scripts/install-tray-startup.ps1 |
WiX-free Startup shortcut |
../scripts/build-tray-startmenu.ps1 |
WiX-free Start Menu + Startup |
../installer-windows.nsi |
Elevated full product setup.exe |
wix/ (this folder) |
Per-user tray shortcut MSI skeleton |
A shipping-grade elevated MSI still needs a separate WiX product that mirrors
NSIS: verae-print.exe, helper, printers, ARP, Authenticode, silent
properties, and CI.
Contributing
Questions and packaging bugs: open an issue or PR against the PrintToVeraeTimeStamp tree. PRs accepted for WiX authoring that keep per-user / non-elevated tray scope separate from the full elevated product MSI. Do not commit certs, passwords, or signed binaries.
License
UNLICENSED © Verae