From 3f166a94f55ab24cd802a51b3f27fb976b3561cd Mon Sep 17 00:00:00 2001 From: DWAA1660 Date: Fri, 9 Oct 2026 06:48:44 -0600 Subject: [PATCH] Windows MSI: own UpgradeCode, not DesignCraft's (#4) (#10) wordcraft.wxs shipped with DesignCraft's UpgradeCode and app component GUID. Windows Installer treats packages that share an UpgradeCode as one product, so with DesignCraft 0.2.1 installed the WordCraft 0.1.0 MSI was a "downgrade" and refused to install ("A newer version of WordCraft is already installed"), and installing DesignCraft after WordCraft would have removed WordCraft. Give WordCraft fresh GUIDs, drop the header comment copied from PhotoCraft, and make packaging-lint fail if the .wxs reuses a sibling Craft app's UpgradeCode/component GUID or repeats a GUID. Fixes #4. Claude-Session: https://claude.ai/code/session_019FczntrDNYd6DupyBdpbL5 Co-authored-by: Claude Opus 5.5 --- .github/workflows/packaging-lint.yml | 19 +++++++++++++++++++ packaging/windows/wordcraft.wxs | 13 ++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/.github/workflows/packaging-lint.yml b/.github/workflows/packaging-lint.yml index 622ae29..3461f67 100644 --- a/.github/workflows/packaging-lint.yml +++ b/.github/workflows/packaging-lint.yml @@ -51,6 +51,25 @@ jobs: if grep -oE '"$RUNNER_TEMP/ai.storyteller.wordcraft.metainfo.xml" appstreamcli validate --no-net --explain "$RUNNER_TEMP/ai.storyteller.wordcraft.metainfo.xml" diff --git a/packaging/windows/wordcraft.wxs b/packaging/windows/wordcraft.wxs index 31b1a6f..9557ed6 100644 --- a/packaging/windows/wordcraft.wxs +++ b/packaging/windows/wordcraft.wxs @@ -4,16 +4,19 @@ wix build wordcraft.wxs -arch x64 -d Version=1.2.3 -d BinDir=... -d IconPath=... -o out.msi - Per-machine install into Program Files, a Start Menu shortcut, `.pcraft` owned by WordCraft, - and WordCraft offered under "Open with" for PSD/PSB and the image formats it reads (without - taking over the user's default app for them). + Per-machine install into Program Files with a Start Menu shortcut. + + UpgradeCode and the component GUIDs below belong to WordCraft alone. Never copy them from (or + into) a sibling Craft app: Windows Installer treats every package sharing an UpgradeCode as one + product, so a shared code makes one app's installer refuse to install ("a newer version is + already installed") or silently uninstall the other. packaging-lint.yml checks this. --> @@ -42,7 +45,7 @@ - +