diff --git a/.changes/nsis-start-menu-shortcut.md b/.changes/nsis-start-menu-shortcut.md new file mode 100644 index 000000000..eea0d9b22 --- /dev/null +++ b/.changes/nsis-start-menu-shortcut.md @@ -0,0 +1,5 @@ +--- +'tauri-bundler': 'patch:bug' +--- + +On Windows, fix NSIS uninstaller failing to remove Start Menu shortcut if `perMachine` mode is used. diff --git a/tooling/bundler/src/bundle/windows/templates/installer.nsi b/tooling/bundler/src/bundle/windows/templates/installer.nsi index a7136f586..2d62bc1f1 100644 --- a/tooling/bundler/src/bundle/windows/templates/installer.nsi +++ b/tooling/bundler/src/bundle/windows/templates/installer.nsi @@ -344,16 +344,7 @@ FunctionEnd !include "{{this}}" {{/each}} -Var PassiveMode -Function .onInit - ${GetOptions} $CMDLINE "/P" $PassiveMode - IfErrors +2 0 - StrCpy $PassiveMode 1 - - !if "${DISPLAYLANGUAGESELECTOR}" == "true" - !insertmacro MUI_LANGDLL_DISPLAY - !endif - +!macro SetContext !if "${INSTALLMODE}" == "currentUser" SetShellVarContext current !else if "${INSTALLMODE}" == "perMachine" @@ -369,6 +360,19 @@ Function .onInit SetRegView 32 !endif ${EndIf} +!macroend + +Var PassiveMode +Function .onInit + ${GetOptions} $CMDLINE "/P" $PassiveMode + IfErrors +2 0 + StrCpy $PassiveMode 1 + + !if "${DISPLAYLANGUAGESELECTOR}" == "true" + !insertmacro MUI_LANGDLL_DISPLAY + !endif + + !insertmacro SetContext ${If} $INSTDIR == "" ; Set default install location @@ -595,15 +599,7 @@ Function .onInstSuccess FunctionEnd Function un.onInit - ${If} ${RunningX64} - !if "${ARCH}" == "x64" - SetRegView 64 - !else if "${ARCH}" == "arm64" - SetRegView 64 - !else - SetRegView 32 - !endif - ${EndIf} + !insertmacro SetContext !if "${INSTALLMODE}" == "both" !insertmacro MULTIUSER_UNINIT