unistall 32bit package on 64bit system

This commit is contained in:
Mario Fetka 2016-08-28 10:23:16 +02:00
parent 4ccb996da4
commit 9ad0cfa87d
3 changed files with 58 additions and 0 deletions

View File

@ -16,12 +16,24 @@ if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specif
endif
Message "Uninstalling " + $ProductId$ + " "+ $OLD_VERSION$ + "-" + $OLD_CREATOR_TAG$ + $OLD_RELEASE$ + " 32 Bit..."
if FileExists($IniFile32$)
Set $MsiIdLegacyHelpDe32$ = GetValueFromInifile($IniFile32$,"X86","MsiIdHelpDe","{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}")
if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdLegacyHelpDe32$ + "] DisplayName") = "")
comment "Legacy MSI id " + $MsiIdLegacyHelpDe32$ + " found in registry, starting msiexec to uninstall legacy version"
Winbatch_uninstall_msi_legacy_help_de_32
sub_check_exitcode
endif
Set $MsiIdOldHelpDe32$ = GetValueFromInifile($IniFile32$,"X86","MsiIdHelpDe32","{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}")
if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdOldHelpDe32$ + "] DisplayName") = "")
comment "Old MSI id " + $MsiIdOldHelpDe32$ + " found in registry, starting msiexec to uninstall old version"
Winbatch_uninstall_msi_old_help_de_32
sub_check_exitcode
endif
Set $MsiIdLegacy32$ = GetValueFromInifile($IniFile32$,"X86","MsiId","{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}")
if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdLegacy32$ + "] DisplayName") = "")
comment "Legacy MSI id " + $MsiIdLegacy32$ + " found in registry, starting msiexec to uninstall legacy version"
Winbatch_uninstall_msi_legacy_32
sub_check_exitcode
endif
Set $MsiIdOld32$ = GetValueFromInifile($IniFile32$,"X86","MsiId32","{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}")
if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdOld32$ + "] DisplayName") = "")
comment "Old MSI id " + $MsiIdOld32$ + " found in registry, starting msiexec to uninstall old version"
@ -54,13 +66,39 @@ if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system spe
endif
Message "Uninstalling " + $ProductId$ + " "+ $OLD_VERSION$ + "-" + $OLD_CREATOR_TAG$ + $OLD_RELEASE$ + " 64 Bit..."
if FileExists($IniFile32$)
Set $MsiIdLegacyHelpDe64$ = GetValueFromInifile($IniFile32$,"X86","MsiIdHelpDe","{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}")
if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdLegacyHelpDe64$ + "] DisplayName") = "")
comment "Legacy MSI id " + $MsiIdLegacyHelpDe64$ + " found in registry, starting msiexec to uninstall legacy version"
Winbatch_uninstall_msi_legacy_help_de_64
sub_check_exitcode
endif
Set $MsiIdLegacy64$ = GetValueFromInifile($IniFile32$,"X86","MsiId","{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}")
if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdLegacy64$ + "] DisplayName") = "")
comment "Legacy MSI id " + $MsiIdLegacy64$ + " found in registry, starting msiexec to uninstall legacy version"
Winbatch_uninstall_msi_legacy_64
sub_check_exitcode
endif
endif
if FileExists($IniFile64$)
Set $MsiIdLegacyHelpDe64$ = GetValueFromInifile($IniFile64$,"X86_64","MsiIdHelpDe","{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}")
if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdLegacyHelpDe64$ + "] DisplayName") = "")
comment "Legacy MSI id " + $MsiIdLegacyHelpDe64$ + " found in registry, starting msiexec to uninstall legacy version"
Winbatch_uninstall_msi_legacy_help_de_64
sub_check_exitcode
endif
Set $MsiIdOldHelpDe64$ = GetValueFromInifile($IniFile64$,"X86_64","MsiIdHelpDe64","{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}")
if not (GetRegistryStringValue64("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdOldHelpDe64$ + "] DisplayName") = "")
comment "Old MSI id " + $MsiIdOldHelpDe64$ + " found in registry, starting msiexec to uninstall old version"
Winbatch_uninstall_msi_old_help_de_64
sub_check_exitcode
endif
Set $MsiIdLegacy64$ = GetValueFromInifile($IniFile64$,"X86_64","MsiId","{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}")
if not (GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdLegacy64$ + "] DisplayName") = "")
comment "Legacy MSI id " + $MsiIdLegacy64$ + " found in registry, starting msiexec to uninstall legacy version"
Winbatch_uninstall_msi_legacy_64
sub_check_exitcode
endif
Set $MsiIdOld64$ = GetValueFromInifile($IniFile64$,"X86_64","MsiId64","{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}")
if not (GetRegistryStringValue64("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $MsiIdOld64$ + "] DisplayName") = "")
comment "Old MSI id " + $MsiIdOld64$ + " found in registry, starting msiexec to uninstall old version"
@ -88,6 +126,12 @@ endif
comment "Delete program shortcuts"
LinkFolder_uninstall
[Winbatch_uninstall_msi_legacy_help_de_32]
msiexec /x $MsiIdLegacyHelpDe32$ /qb! REBOOT=ReallySuppress
[Winbatch_uninstall_msi_legacy_32]
msiexec /x $MsiIdLegacy32$ /qb! REBOOT=ReallySuppress
[Winbatch_uninstall_msi_old_help_de_32]
msiexec /x $MsiIdOldHelpDe32$ /qb! REBOOT=ReallySuppress
@ -105,6 +149,12 @@ msiexec /x $MsiId32$ /qb! REBOOT=ReallySuppress
;
delete -sf "$InstallDir32$\"
[Winbatch_uninstall_msi_legacy_help_de_64]
msiexec /x $MsiIdLegacyHelpDe64$ /qb! REBOOT=ReallySuppress
[Winbatch_uninstall_msi_legacy_64]
msiexec /x $MsiIdLegacy64$ /qb! REBOOT=ReallySuppress
[Winbatch_uninstall_msi_old_help_de_64]
msiexec /x $MsiIdOldHelpDe64$ /qb! REBOOT=ReallySuppress

View File

@ -6,6 +6,10 @@
[Actions]
requiredWinstVersion >= "4.11.2.6"
DefVar $MsiIdLegacy32$
DefVar $MsiIdLegacyHelpDe32$
DefVar $MsiIdLegacy64$
DefVar $MsiIdLegacyHelpDe64$
DefVar $MsiIdOld32$
DefVar $MsiIdOldHelpDe32$
DefVar $MsiIdOld64$

View File

@ -6,6 +6,10 @@
[Actions]
requiredWinstVersion >= "4.11.2.6"
DefVar $MsiIdLegacy32$
DefVar $MsiIdLegacyHelpDe32$
DefVar $MsiIdLegacy64$
DefVar $MsiIdLegacyHelpDe64$
DefVar $MsiIdOld32$
DefVar $MsiIdOldHelpDe32$
DefVar $MsiIdOld64$