From 0a6fcd95c7ab088a17dc5bf0fd30b61430f0a786 Mon Sep 17 00:00:00 2001 From: shenmo Date: Sun, 19 Jul 2026 23:27:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(install-manager):=20=20=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E6=97=B6=E8=B7=B3=E8=BF=87APM=E5=BF=AB?= =?UTF-8?q?=E6=8D=B7=E6=96=B9=E5=BC=8F=E5=88=9B=E5=BB=BA=EF=BC=8C=E4=BB=85?= =?UTF-8?q?=E9=92=88=E5=AF=B9=E5=8D=87=E7=BA=A7=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron/main/backend/install-manager.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/electron/main/backend/install-manager.ts b/electron/main/backend/install-manager.ts index fb1be474..4dbd985d 100644 --- a/electron/main/backend/install-manager.ts +++ b/electron/main/backend/install-manager.ts @@ -42,6 +42,7 @@ type InstallTask = { metalinkUrl?: string; filename?: string; origin: "spark" | "apm"; + upgradeOnly?: boolean; cancelled?: boolean; phase: "queued-download" | "downloading" | "queued-install" | "installing"; }; @@ -268,7 +269,8 @@ ipcMain.on("queue-install", async (event, download_json) => { typeof download_json === "string" ? JSON.parse(download_json) : download_json; - const { id, pkgname, metalinkUrl, filename, origin } = download || {}; + const { id, pkgname, metalinkUrl, filename, origin, upgradeOnly } = + download || {}; if (!id || !pkgname) { logger.warn("passed arguments missing id or pkgname"); @@ -376,6 +378,7 @@ ipcMain.on("queue-install", async (event, download_json) => { metalinkUrl, filename, origin: origin || "apm", + upgradeOnly: Boolean(upgradeOnly), phase: metalinkUrl ? "queued-download" : "queued-install", }; tasks.set(id, task); @@ -769,9 +772,9 @@ async function runInstallPhase(task: InstallTask) { if (success) { logger.info(msgObj); - // 安装成功后,如果是APM安装的,就调用createApmDesktopShortcut - // 这个函数负责处理桌面快捷方式,它自己会读取设置并且决定要不要创建 - if (task.origin === "apm" && task.pkgname) { + // 安装成功后,如果是APM新安装任务,就调用createApmDesktopShortcut + // 升级任务不创建桌面快捷方式;这个函数自己会读取设置并决定要不要创建 + if (task.origin === "apm" && task.pkgname && !task.upgradeOnly) { try { await createApmDesktopShortcut(task.pkgname, sendLog); } catch (err) {