From beb14ea0a2fccb69f2af564fc1d0330451a535d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Andr=C3=A9?= Date: Sun, 8 Mar 2026 16:20:31 +0100 Subject: [PATCH] fix(tauri): restore Windows desktop startup --- package-lock.json | 19 +++++++++++++++++- packages/tauri-app/package.json | 3 ++- .../tauri-app/src-tauri/src/cli_manager.rs | 20 ++++++++++++++++--- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index c1983131..468d1cda 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3305,6 +3305,22 @@ "node": ">= 10" } }, + "node_modules/@tauri-apps/cli-win32-x64-msvc": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-2.9.4.tgz", + "integrity": "sha512-EdYd4c9wGvtPB95kqtEyY+bUR+k4kRw3IA30mAQ1jPH6z57AftT8q84qwv0RDp6kkEqOBKxeInKfqi4BESYuqg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 OR MIT", + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@tauri-apps/plugin-notification": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-notification/-/plugin-notification-2.3.3.tgz", @@ -12066,7 +12082,8 @@ "version": "0.12.2", "license": "MIT", "devDependencies": { - "@tauri-apps/cli": "^2.9.4" + "@tauri-apps/cli": "^2.9.4", + "@tauri-apps/cli-win32-x64-msvc": "^2.9.4" } }, "packages/ui": { diff --git a/packages/tauri-app/package.json b/packages/tauri-app/package.json index eb556d64..9babb2f7 100644 --- a/packages/tauri-app/package.json +++ b/packages/tauri-app/package.json @@ -13,6 +13,7 @@ "build": "tauri build" }, "devDependencies": { - "@tauri-apps/cli": "^2.9.4" + "@tauri-apps/cli": "^2.9.4", + "@tauri-apps/cli-win32-x64-msvc": "^2.9.4" } } diff --git a/packages/tauri-app/src-tauri/src/cli_manager.rs b/packages/tauri-app/src-tauri/src/cli_manager.rs index 6b55b945..0207f629 100644 --- a/packages/tauri-app/src-tauri/src/cli_manager.rs +++ b/packages/tauri-app/src-tauri/src/cli_manager.rs @@ -900,6 +900,11 @@ fn resolve_dist_entry(_app: &AppHandle) -> Option { if let Ok(exe) = std::env::current_exe() { if let Some(dir) = exe.parent() { + candidates.push(Some(dir.join("resources/server/dist/bin.js"))); + candidates.push(Some(dir.join("resources/server/dist/index.js"))); + candidates.push(Some(dir.join("resources/server/dist/server/bin.js"))); + candidates.push(Some(dir.join("resources/server/dist/server/index.js"))); + let resources = dir.join("../Resources"); candidates.push(Some(resources.join("server/dist/bin.js"))); candidates.push(Some(resources.join("server/dist/index.js"))); @@ -995,9 +1000,18 @@ fn first_existing(paths: Vec>) -> Option { } fn normalize_path(path: PathBuf) -> String { - if let Ok(clean) = path.canonicalize() { - clean.to_string_lossy().to_string() + let resolved = if let Ok(clean) = path.canonicalize() { + clean } else { - path.to_string_lossy().to_string() + path + }; + + let rendered = resolved.to_string_lossy().to_string(); + if let Some(stripped) = rendered.strip_prefix("\\\\?\\UNC\\") { + format!("\\\\{}", stripped) + } else if let Some(stripped) = rendered.strip_prefix("\\\\?\\") { + stripped.to_string() + } else { + rendered } }