Bump with proper uninstall of old release based in setup programm
This commit is contained in:
@@ -4,15 +4,25 @@
|
||||
; credits: http://www.opsi.org/credits/
|
||||
|
||||
|
||||
Set $MsiId32$ = '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}'
|
||||
Set $UninstallProgram32$ = $InstallDir32$ + "\unins000.exe"
|
||||
|
||||
Set $MsiId64$ = '{23170F69-40C1-2702-0920-000001000000}'
|
||||
Set $UninstallProgram64$ = $InstallDir64$ + "\unins000.exe"
|
||||
Set $IniFile32$ = $InstallDir32$ + "\opsi-" + $ProductId$ + ".ini"
|
||||
Set $IniFile64$ = $InstallDir64$ + "\opsi-" + $ProductId$ + ".ini"
|
||||
|
||||
|
||||
|
||||
if (($INST_SystemType$ = "x86 System") and ($INST_architecture$ = "system specific")) or ($INST_architecture$ = "both") or ($INST_architecture$ = "32 only")
|
||||
Message "Uninstalling " + $ProductId$ + " 32 Bit..."
|
||||
|
||||
if FileExists($IniFile32$)
|
||||
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"
|
||||
Winbatch_uninstall_msi_old_32
|
||||
sub_check_exitcode
|
||||
endif
|
||||
endif
|
||||
|
||||
if FileExists($UninstallProgram32$)
|
||||
comment "Uninstall program found, starting uninstall"
|
||||
Winbatch_uninstall_32
|
||||
@@ -34,6 +44,14 @@ endif
|
||||
if ($INST_SystemType$ = "64 Bit System") and (($INST_architecture$ = "system specific") or ($INST_architecture$ = "both") or ($INST_architecture$ = "64 only"))
|
||||
Message "Uninstalling " + $ProductId$ + " 64 Bit..."
|
||||
|
||||
if FileExists($IniFile64$)
|
||||
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"
|
||||
Winbatch_uninstall_msi_old_64
|
||||
sub_check_exitcode
|
||||
endif
|
||||
endif
|
||||
if FileExists($UninstallProgram64$)
|
||||
comment "Uninstall program found, starting uninstall"
|
||||
Winbatch_uninstall_64
|
||||
@@ -59,9 +77,15 @@ LinkFolder_uninstall
|
||||
; Choose one of the following examples as basis for program uninstall
|
||||
;
|
||||
; === Nullsoft Scriptable Install System ================================================================
|
||||
"$UninstallProgram32$" /VERYSILENT
|
||||
; "$UninstallProgram32$" /S
|
||||
;
|
||||
; === Inno Setup ========================================================================================
|
||||
; "$UninstallProgram32$" /silent /norestart /SUPPRESSMSGBOXES
|
||||
|
||||
|
||||
[Winbatch_uninstall_msi_old_32]
|
||||
msiexec /x $MsiIdOld32$ /qb! REBOOT=ReallySuppress
|
||||
|
||||
[Winbatch_uninstall_msi_32]
|
||||
msiexec /x $MsiId32$ /qb! REBOOT=ReallySuppress
|
||||
|
||||
@@ -74,9 +98,15 @@ msiexec /x $MsiId32$ /qb! REBOOT=ReallySuppress
|
||||
; Choose one of the following examples as basis for program uninstall
|
||||
;
|
||||
; === Nullsoft Scriptable Install System ================================================================
|
||||
"$UninstallProgram64$" /VERYSILENT
|
||||
; "$UninstallProgram64$" /S
|
||||
;
|
||||
; === Inno Setup ========================================================================================
|
||||
; "$UninstallProgram64$" /silent /norestart /SUPPRESSMSGBOXES
|
||||
|
||||
|
||||
[Winbatch_uninstall_msi_old_64]
|
||||
msiexec /x $MsiIdOld64$ /qb! REBOOT=ReallySuppress
|
||||
|
||||
[Winbatch_uninstall_msi_64]
|
||||
msiexec /x $MsiId64$ /qb! REBOOT=ReallySuppress
|
||||
|
||||
9
CLIENT_DATA/opsi-cdburnerxp.cdburnerxp.ini
Normal file
9
CLIENT_DATA/opsi-cdburnerxp.cdburnerxp.ini
Normal file
@@ -0,0 +1,9 @@
|
||||
[X86]
|
||||
MsiId32={3867AA1B-BF01-4492-9E3A-DA032C94F424}
|
||||
|
||||
[X86_64]
|
||||
MsiId64={2049837C-257A-4F11-BC7B-2EAC6C043B26}
|
||||
|
||||
[COMMON]
|
||||
PN=cdburnerxp.cdburnerxp
|
||||
VERSION=4.5.1.3868
|
||||
@@ -6,10 +6,15 @@
|
||||
[Actions]
|
||||
requiredWinstVersion >= "4.10.8.6"
|
||||
|
||||
DefVar $MsiId32$
|
||||
; DefVar $MsiId32$
|
||||
DefVar $MsiIdOld32$
|
||||
DefVar $UninstallProgram32$
|
||||
DefVar $MsiId64$
|
||||
DefVar $IniFile32$
|
||||
; DefVar $MsiId64$
|
||||
DefVar $MsiIdOld64$
|
||||
DefVar $UninstallProgram64$
|
||||
DefVar $IniFile64$
|
||||
DefVar $IniCfgFile$
|
||||
DefVar $LogDir$
|
||||
DefVar $ProductId$
|
||||
DefVar $MinimumSpace$
|
||||
@@ -49,6 +54,7 @@ Set $MinimumSpace$ = "30 MB"
|
||||
; the path were we find the product after the installation
|
||||
Set $InstallDir32$ = "%ProgramFiles32Dir%\CDBurnerXP"
|
||||
Set $InstallDir64$ = "%ProgramFiles64Dir%\CDBurnerXP"
|
||||
Set $IniCfgFile$ = "%ScriptPath%\opsi-" + $ProductId$ + ".ini"
|
||||
Set $LicenseRequired$ = "false"
|
||||
Set $LicensePool$ = "p_" + $ProductId$
|
||||
; ----------------------------------------------------------------
|
||||
@@ -61,9 +67,9 @@ else
|
||||
comment "Show product picture"
|
||||
ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
|
||||
|
||||
if FileExists("%ScriptPath%\delsub.ins")
|
||||
if FileExists("%ScriptPath%\delsub3264.ins")
|
||||
comment "Start uninstall sub section"
|
||||
Sub "%ScriptPath%\delsub.ins"
|
||||
Sub "%ScriptPath%\delsub3264.ins"
|
||||
endif
|
||||
|
||||
if $LicenseRequired$ = "true"
|
||||
@@ -102,26 +108,25 @@ else
|
||||
endif
|
||||
|
||||
[Winbatch_install_32]
|
||||
; Choose one of the following examples as basis for your installation
|
||||
; You can use $LicenseKey$ var to pass a license key to the installer
|
||||
;
|
||||
; === Nullsoft Scriptable Install System ================================================================
|
||||
"$Install32Exe$" /verysilent ALLUSERS=1
|
||||
; === MSI package =======================================================================================
|
||||
; You may use the parameter PIDKEY=$Licensekey$
|
||||
msiexec /i "$Install32Msi$" /l* "$LogDir$\$ProductId$.install_log.txt" /qb! ALLUSERS=2 REBOOT=ReallySuppress
|
||||
|
||||
[Files_install_32]
|
||||
copy "$IniCfgFile$" "$InstallDir32$"
|
||||
|
||||
; Example of recursively copying some files into the installation directory:
|
||||
;
|
||||
; copy -s "%ScriptPath%\files\*.*" "$InstallDir32$"
|
||||
|
||||
[Winbatch_install_64]
|
||||
; Choose one of the following examples as basis for your installation
|
||||
; You can use $LicenseKey$ var to pass a license key to the installer
|
||||
;
|
||||
; === MSI package =======================================================================================
|
||||
; You may use the parameter PIDKEY=$Licensekey$
|
||||
"$Install64Exe$" /verysilent ALLUSERS=1
|
||||
msiexec /i "$Install64Msi$" /l* "$LogDir$\$ProductId$.install_log.txt" /qb! ALLUSERS=2 REBOOT=ReallySuppress
|
||||
|
||||
[Files_install_64]
|
||||
copy "$IniCfgFile$" "$InstallDir64$"
|
||||
|
||||
; Example of recursively copying some files into the installation directory:
|
||||
;
|
||||
; copy -s "%ScriptPath%\files\*.*" "$InstallDir64$"
|
||||
@@ -169,43 +174,37 @@ endif
|
||||
; end_link
|
||||
|
||||
[Sub_get_licensekey]
|
||||
if opsiLicenseManagementEnabled
|
||||
comment "License management is enabled and will be used"
|
||||
comment "License management is enabled and will be used"
|
||||
|
||||
comment "Trying to get a license key"
|
||||
Set $LicenseKey$ = demandLicenseKey ($LicensePool$)
|
||||
; If there is an assignment of exactly one licensepool to the product the following call is possible:
|
||||
; Set $LicenseKey$ = demandLicenseKey ("", $ProductId$)
|
||||
;
|
||||
; If there is an assignment of a license pool to a windows software id, it is possible to use:
|
||||
; DefVar $WindowsSoftwareId$
|
||||
; $WindowsSoftwareId$ = "..."
|
||||
; Set $LicenseKey$ = demandLicenseKey ("", "", $WindowsSoftwareId$)
|
||||
|
||||
DefVar $ServiceErrorClass$
|
||||
set $ServiceErrorClass$ = getLastServiceErrorClass
|
||||
comment "Error class: " + $ServiceErrorClass$
|
||||
|
||||
if $ServiceErrorClass$ = "None"
|
||||
comment "Everything fine, we got the license key '" + $LicenseKey$ + "'"
|
||||
else
|
||||
if $ServiceErrorClass$ = "LicenseConfigurationError"
|
||||
LogError "Fatal: license configuration must be corrected"
|
||||
LogError getLastServiceErrorMessage
|
||||
comment "Trying to get a license key"
|
||||
Set $LicenseKey$ = demandLicenseKey ($LicensePool$)
|
||||
; If there is an assignment of exactly one licensepool to the product the following call is possible:
|
||||
; Set $LicenseKey$ = demandLicenseKey ("", $ProductId$)
|
||||
;
|
||||
; If there is an assignment of a license pool to a windows software id, it is possible to use:
|
||||
; DefVar $WindowsSoftwareId$
|
||||
; $WindowsSoftwareId$ = "..."
|
||||
; Set $LicenseKey$ = demandLicenseKey ("", "", $WindowsSoftwareId$)
|
||||
|
||||
DefVar $ServiceErrorClass$
|
||||
set $ServiceErrorClass$ = getLastServiceErrorClass
|
||||
comment "Error class: " + $ServiceErrorClass$
|
||||
|
||||
if $ServiceErrorClass$ = "None"
|
||||
comment "Everything fine, we got the license key '" + $LicenseKey$ + "'"
|
||||
else
|
||||
if $ServiceErrorClass$ = "LicenseConfigurationError"
|
||||
LogError "Fatal: license configuration must be corrected"
|
||||
LogError getLastServiceErrorMessage
|
||||
isFatalError
|
||||
else
|
||||
if $ServiceErrorClass$ = "LicenseMissingError"
|
||||
LogError "Fatal: required license is not supplied"
|
||||
isFatalError
|
||||
else
|
||||
if $ServiceErrorClass$ = "LicenseMissingError"
|
||||
LogError "Fatal: required license is not supplied"
|
||||
isFatalError
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
else
|
||||
LogError "Fatal: license required, but license management not enabled"
|
||||
isFatalError
|
||||
endif
|
||||
|
||||
|
||||
[Sub_check_exitcode]
|
||||
comment "Test for installation success via exit code"
|
||||
set $ExitCode$ = getLastExitCode
|
||||
@@ -6,10 +6,15 @@
|
||||
[Actions]
|
||||
requiredWinstVersion >= "4.10.8.6"
|
||||
|
||||
DefVar $MsiId32$
|
||||
; DefVar $MsiId32$
|
||||
DefVar $MsiIdOld32$
|
||||
DefVar $UninstallProgram32$
|
||||
DefVar $MsiId64$
|
||||
DefVar $IniFile32$
|
||||
; DefVar $MsiId64$
|
||||
DefVar $MsiIdOld64$
|
||||
DefVar $UninstallProgram64$
|
||||
DefVar $IniFile64$
|
||||
DefVar $IniCfgFile$
|
||||
DefVar $LogDir$
|
||||
DefVar $ExitCode$
|
||||
DefVar $ProductId$
|
||||
@@ -40,8 +45,8 @@ Set $LogDir$ = "%SystemDrive%\tmp"
|
||||
; - Please edit the following values -
|
||||
; ----------------------------------------------------------------
|
||||
Set $ProductId$ = "cdburnerxp.cdburnerxp"
|
||||
Set $InstallDir32$ = "%ProgramFiles32Dir%\CDBurnerXP"
|
||||
Set $InstallDir64$ = "%ProgramFiles64Dir%\CDBurnerXP"
|
||||
Set $InstallDir32$ = "%ProgramFiles32Dir%\CDBurnerXP"
|
||||
Set $InstallDir64$ = "%ProgramFiles64Dir%\CDBurnerXP"
|
||||
Set $LicenseRequired$ = "false"
|
||||
Set $LicensePool$ = "p_" + $ProductId$
|
||||
; ----------------------------------------------------------------
|
||||
@@ -52,9 +57,9 @@ ShowBitmap "%ScriptPath%\" + $ProductId$ + ".png" $ProductId$
|
||||
|
||||
Message "Uninstalling " + $ProductId$ + " ..."
|
||||
|
||||
if FileExists("%ScriptPath%\delsub.ins")
|
||||
if FileExists("%ScriptPath%\delsub3264.ins")
|
||||
comment "Start uninstall sub section"
|
||||
Sub "%ScriptPath%\delsub.ins"
|
||||
Sub "%ScriptPath%\delsub3264.ins"
|
||||
endif
|
||||
|
||||
if $LicenseRequired$ = "true"
|
||||
@@ -63,23 +68,17 @@ if $LicenseRequired$ = "true"
|
||||
endif
|
||||
|
||||
[Sub_free_license]
|
||||
if opsiLicenseManagementEnabled
|
||||
comment "License management is enabled and will be used"
|
||||
|
||||
comment "Trying to free license used for the product"
|
||||
DefVar $result$
|
||||
Set $result$ = FreeLicense($LicensePool$)
|
||||
; If there is an assignment of a license pool to the product, it is possible to use
|
||||
; Set $result$ = FreeLicense("", $ProductId$)
|
||||
;
|
||||
; If there is an assignment of a license pool to a windows software id, it is possible to use
|
||||
; DefVar $WindowsSoftwareId$
|
||||
; $WindowsSoftwareId$ = "..."
|
||||
; set $result$ = FreeLicense("", "", $WindowsSoftwareId$)
|
||||
else
|
||||
LogError "Error: licensing required, but license management not enabled"
|
||||
isFatalError
|
||||
endif
|
||||
comment "License management is enabled and will be used"
|
||||
|
||||
comment "Trying to free license used for the product"
|
||||
DefVar $result$
|
||||
Set $result$ = FreeLicense($LicensePool$)
|
||||
; If there is an assignment of a license pool to the product, it is possible to use
|
||||
; Set $result$ = FreeLicense("", $ProductId$)
|
||||
;
|
||||
; If there is an assignment of a license pool to a windows software id, it is possible to use
|
||||
; DefVar $WindowsSoftwareId$
|
||||
; $WindowsSoftwareId$ = "..."
|
||||
; set $result$ = FreeLicense("", "", $WindowsSoftwareId$)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user