Files

1.5 KiB

Launcher installation paths

New copies use %LOCALAPPDATA%\Programs\ArtCraft\Launcher. Updates restore the existing registered exact folder, and an explicit INSTALLFOLDER wins. The existing UpgradeCode, per-user scope, account-owned registrations, shortcuts and desktop preference remain intact.

The launcher remains per-user only so its current self-update design is not changed into a machine-wide deployment. A machine-wide launcher/updater service is separate work, not a hidden part of this path change. The apps themselves have dual-scope installers.

App updates query Windows Installer registration (ProductsEx and Product.Context) for the current account and the machine. A display/uninstall registry hive is not evidence of the actual context. An unknown, invalid or conflicting context stops the update before download; it never silently takes a fresh-install default. The query does not use Win32_Product or run any installation/repair action. Native tests cover this stop through the real install entry point, as well as context mapping, malformed identifiers and query failure.

Run ./packaging/windows/test-install-policy.ps1 -OutputDirectory ./target/install-policy-tests on Windows with WiX 5.0.2 and its UI/Util extensions. The x64/x86/arm64 fixtures are deliberately non-executable. Never install them. They check compiled paths, identity and registration, not real self-update, elevation, cancellation, rollback or uninstall. Those require an authorised clean Windows environment and real payloads. Packaging CI and release packaging run the gates.