fix(bundler): store and remove old main binary on updates if main binary name has change (#10962)

This commit is contained in:
Amr Bashir
2024-09-13 16:09:17 +03:00
committed by GitHub
parent 00182ebf89
commit b13cb208a3
3 changed files with 18 additions and 2 deletions

View File

@@ -0,0 +1,6 @@
---
"tauri-bundler": "patch:feat"
---
Store main binary name in registry for NSIS installer and delete old main binary on updates if the name changes.

View File

@@ -546,8 +546,9 @@ pub fn build_wix_app_installer(
let shortcut_guid = generate_package_guid(settings).to_string();
data.insert("shortcut_guid", to_json(shortcut_guid.as_str()));
let app_exe_name = settings.main_binary_name().to_string();
data.insert("app_exe_name", to_json(app_exe_name));
// Note: `main_binary_name` is not used in our template but we keep it as it is potentially useful for custom temples
let main_binary_name = settings.main_binary_name().to_string();
data.insert("main_binary_name", to_json(&main_binary_name));
let binaries = generate_binaries_data(settings)?;

View File

@@ -636,6 +636,15 @@ Section Install
WriteRegStr SHCTX "${UNINSTKEY}" $MultiUser.InstallMode 1
!endif
; Remove old main binary if it doesn't match new main binary name
ReadRegStr $0 SHCTX "${UNINSTKEY}" "MainBinaryName"
${If} $0 != "${MAINBINARYNAME}.exe"
Delete "$INSTDIR\$0"
${EndIf}
; Save current MAINBINARYNAME for future updates
WriteRegStr SHCTX "${UNINSTKEY}" "MainBinaryName" "${MAINBINARYNAME}.exe"
; Registry information for add/remove programs
WriteRegStr SHCTX "${UNINSTKEY}" "DisplayName" "${PRODUCTNAME}"
WriteRegStr SHCTX "${UNINSTKEY}" "DisplayIcon" "$\"$INSTDIR\${MAINBINARYNAME}.exe$\""