From 3e89e3faff10e39920c046bacab5b0e84802c8ca Mon Sep 17 00:00:00 2001 From: SkyJourney Date: Sun, 2 Aug 2026 14:47:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=93=81=E7=89=8C?= =?UTF-8?q?=E6=94=B9=E5=90=8D=E5=90=8E=E7=9A=84=E5=AE=89=E8=A3=85=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/desktop/README.md | 4 +++- apps/desktop/build/installer.nsh | 8 ++++++++ apps/desktop/tests/release-build.test.ts | 6 ++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/apps/desktop/README.md b/apps/desktop/README.md index 0af50f5..07501aa 100644 --- a/apps/desktop/README.md +++ b/apps/desktop/README.md @@ -72,7 +72,9 @@ NSIS 使用标准辅助安装模式,支持选择当前用户/所有用户安 界面、快捷方式与卸载项使用中文名“墨呈”,窗口标题为 “墨呈 · MorphDoc”,默认安装目录和 Windows 主程序分别为 `MorphDoc` 和 `MorphDoc.exe`。NSIS appId 保持 `com.md-to-pdf.desktop`,确保 -v0.5.1 覆盖升级沿用原安装身份。 +v0.5.1 覆盖升级沿用原卸载身份;v0.6.0 使用独立的安装位置注册表键, +升级时由旧版卸载器清理 `md-to-pdf` 目录,再安装到 `MorphDoc` 目录, +避免产品改名后继续继承旧目录名。 当前目录包只包含一套 Electron Chromium,不携带 Playwright Chromium; Pandoc 作为未修改的独立程序随 Desktop 内置,通过受控子进程执行。 diff --git a/apps/desktop/build/installer.nsh b/apps/desktop/build/installer.nsh index f55965d..d93f28e 100644 --- a/apps/desktop/build/installer.nsh +++ b/apps/desktop/build/installer.nsh @@ -2,6 +2,12 @@ !define MORPHDOC_EXECUTABLE "MorphDoc.exe" !define MORPHDOC_LEGACY_DISPLAY_NAME "Markdown PDF 导出器" !define MORPHDOC_LEGACY_EXECUTABLE "md-to-pdf.exe" +!define MORPHDOC_LEGACY_INSTALL_REGISTRY_KEY "Software\${APP_GUID}" + +; 保持 APP_GUID 与卸载身份不变,但不再沿用旧产品名对应的安装目录。 +; electron-builder 会从 INSTALL_REGISTRY_KEY 读取历史 InstallLocation;使用 +; 独立键可让 v0.6.0 默认进入 MorphDoc 目录,同时仍由相同卸载身份识别旧版。 +!define INSTALL_REGISTRY_KEY "Software\${APP_GUID}.MorphDoc" !ifdef FONT_PACK_COMPANION_FILE !ifndef BUILD_UNINSTALLER @@ -68,6 +74,7 @@ !endif !macro customInstall + DeleteRegKey SHCTX "${MORPHDOC_LEGACY_INSTALL_REGISTRY_KEY}" WriteRegStr SHCTX \ "Software\Classes\MarkdownPdfExporter.Markdown" \ "" \ @@ -139,6 +146,7 @@ !macroend !macro customUnInstall + DeleteRegKey SHCTX "${MORPHDOC_LEGACY_INSTALL_REGISTRY_KEY}" DeleteRegValue SHCTX \ "Software\Classes\.md\OpenWithProgids" \ "MarkdownPdfExporter.Markdown" diff --git a/apps/desktop/tests/release-build.test.ts b/apps/desktop/tests/release-build.test.ts index 800060c..843a320 100644 --- a/apps/desktop/tests/release-build.test.ts +++ b/apps/desktop/tests/release-build.test.ts @@ -169,6 +169,12 @@ describe("桌面发行构建链", () => { expect(installerInclude).toContain( '!define MORPHDOC_DISPLAY_NAME "墨呈"' ); + expect(installerInclude).toContain( + '!define INSTALL_REGISTRY_KEY "Software\\${APP_GUID}.MorphDoc"' + ); + expect(installerInclude).toContain( + 'DeleteRegKey SHCTX "${MORPHDOC_LEGACY_INSTALL_REGISTRY_KEY}"' + ); expect(installerInclude).toContain( "Software\\Classes\\Applications\\${MORPHDOC_LEGACY_EXECUTABLE}" );