Seite 1 von 1

MSI Fehler Errorlevel 0

Verfasst: 20. Aug 2009, 13:11
von harald
Hallo zusammen,

ich bastle gerade am Zarafa Client 6.30.0. Das Paket ist ein einfaches MSI Paket. Die Verteilung des alten Clients 6.20.5 klappt ohne Probleme, sowohl Installation, als auch Deinstallation. Keine Resteinträge in C:\Programme, als auch in der Registry.

Das neue Paket für den 6.30.0 Client habe ich genau so geschnürt und es läuft auch an. Das Programm wird installiert und die Registryeiträge auch genauso gesetzt wie bei einer händischen Installation. Was nicht gesetzt wird sind sämtliche Empirum Einträge. (C:\Programme\EmpPack_, HKLM\Software und der Uninstallstring in der Registry).

Softwaredepot bricht ab mit Fehler -1

Das SetupErrorLog sagt:

ErrorLogMsg: Die Installation/Deinstallation wurde mit einer Fehlermeldung abgebrochen! ErroLevel: 0

Wie gesagt das Paket 6.20.5 läuft mit identischen Einstellungen, ich habe lediglich die Produktkeys {0F76...} und die Versionsnummer ausgetauscht.

Code: Alles auswählen

[SetupInfo]
Author                  = H.Krischke
CreationDate            = 20.08.2009 12:04:27
InventoryID             =
Description             =
Method                  = MSI
Tested on               =
Dependencies            =
Command line options    = /S2
Last Change             = 
Build                   = 

[VarDefInfo]
; <Variable>, <Type>, <Allow>

[Setup]
Version=10.5
ShowCaption=1
BlockInput=0
Platform=x86

[Requirements]

[Application]
ProductName=Outlook Client
ProductNameShort=ZOC
Version=6.30.0
VersionDirSuffix=100
Revision=0
ServiceRelease=0
DeveloperName=Zarafa
DeveloperNameShort=Zarafa
SetupName=%ProductName% %Version% %SetupWizard%
Text1="%ProductName% %Version%",         Arial,           30, , 00FFFF, 4, ,    LEFT BOLD ITALIC
Text2="%DeveloperName%",                 Arial,           24, , 00FFFF, 4, ,    LEFT BOLD ITALIC
Text8="%Company%",                       Arial,           18, , 00FFFF, 4, 10,  RIGHT BOLD ITALIC
Text9="%InstallationFor% %WindowsUser%", Arial,           14, , 007F00, 4, -14, BOTTOM ITALIC LEFT
BackgroundColor=FF0000,000000
BackgroundPicture=
BackgroundSound=
Logo=
WizardPicture=
CopyDialogRect=0%, 77%, 100%, 100%, HCENTER
PrecopyFiles=

;################ Hier editieren ##################

UserKeyName=EmpPack_%DeveloperName%\%ProductName%
MachineKeyName=EmpPack_%DeveloperName%\%ProductName%\%Version%
UninstallKeyName=EmpPack_%DeveloperName% %ProductName% %Version%
UninstallDisplayName=EmpPack_%DeveloperName% %ProductName% %Version%
ApplicationDir=%ProgramFilesDir%\%ProductName%


UninstallString=%ReinstallString% /U
ReinstallString="%CommonSetupDir%\Setup.exe" "%App%\%SetupInfDir%\Setup.inf"
ReinstallMode=1
HideUninstall=0
SrcDir=..

SetupInfDir=Install
DataDir=%Personal%
DefaultUser=
DefaultCompany=
Prompts=
RunIfInstalled=
Readme=
Execute=
Expand=0
CopyExistingFiles=0
AskUninstallOld=1
AskLicence=0
AskInfo=0
AskFromCD=0
AskShared=0
AskMode=0
AskDir=0
AskDataDir=0
AskUser=0
UseUser=0
UseCompany=1
UseProductID=0
ProductIDLength=0
UseProductIDPerOption=0
UseCheckmarks=2
AutoIniFileMapping=0
ShellLinks=1
CommonShellLinks=1
CreateUnresolvableShellLinks=1
ShowShellFolder=
LicenceText=
InfoText=
RequirementsText=
UseStringSection=Strings:09
UseSysStringSection=SysStrings:09
PrintServer=
PrintEnvironment=
DateWarning=1
SizeWarning=1
Reboot=0
PreventExternalReboot=1
StartServicesOnReboot=0
CallTimeOut=3600
AbortAfterCallTimeOut=1
ReplaceRunOnce=0
DisableCancelButton=1
ShowEndMessage=1
EndMessage=%EndMessageDesc%
SetupExtDll=
SetupHookFunc=
ShowFullPath=0

[Admin]
AdminSetup=0
ApplicationDir=
AskDir=1
AskOptions=0
ClientSrcDir=Client
UninstallString=%ReinstallString% /U
ReinstallString="%Src%\..\..\..\..\User\Setup.exe" "%Src%\%SetupInfDir%\Setup.inf"

[Client]
ClientDir=
AskDir=0
AskOptions=1
Reboot=0
UseUninstallStringFromApplication=1
InstallAtLast=0

[Workstation]
AskOptions=0
AdminUninstallLink=0
AdminUninstallLinkName=%ProductName% %Version%
UserSetupLink=0
UserSetupLinkName=%ProductName% %Version%

[Strings:07]
Disk1=Diskette 1: Installationsdiskette
EndMessageDesc=Die Installation wurde erfolgreich abgeschlossen!
InstallationFor=Installation für:
InstallerDesc=Dienstprogramm zum Installieren einzelner Komponenten.
InstallerName=Installationsprogramm
ProductDesc=Zarafa Outlook Client
SetupWizard=Installations-Assistent
Uninstallation=deinstallieren
ErrorLogMessage=Die Installation/Deinstallation wurde mit einer Fehlermeldung abgebrochen!

[Strings:09]
Disk1=Diskette 1: Installation disk
EndMessageDesc=Installation was completed successfully!
InstallationFor=Installation for:
InstallerDesc=Service program to install single components.
InstallerName=Setup program
ProductDesc=Zarafa Outlook Client
SetupWizard=Installation Wizard
Uninstallation=Uninstallation
ErrorLogMessage=The installation/uninstallation aborted with an error message!

[SysStrings:07]
Users=Benutzer

[SysStrings:09]
Users=Users

[Environment]
V_MSIInstallerID=25CA30E7711317B419689762290DCA56
ReInstSuccessMessage1031=Die Konfiguration wurde erfolgreich abgeschlossen.
ReInstSuccessMessage1033=Configuration completed successfully.
MSILogFile=%Temp%\MSI_%ProductName%.%Version%.%Revision%.log
CommonSetupDir=%CommonFilesDir%\Setup%SetupBits%
V_MachineValuesPath=%SoftwareDepotServerName%\Values$\MachineValues\%DomainName%
V_UserValuesPath=%HKLM,"Software\matrix42\Software Depot","HomeServer"%\Values$\UserValues\%UserDomain%

; Maschinenabhängige Variablen
; machine dependent variables 
;VM_<Variable>=%%%V_MachineValuesPath%\%ComputerName%.ini,%ComputerName%,<Variable>%%

; Userabhängige Variablen
; user dependent variables 
;VU_<Variable>=%%%V_UserValuesPath%\%WindowsUser%.ini,%WindowsUser%,<Variable>%%

; !!! Setzen der entsprechenden ReplaceEnv Befehle für die Variablen im Abschnitt [Product] nicht vergessen!!!
; !!! Don't forget to set the appropriate ReplaceEnv instructions for the variables in the section [Product]!!!

[Prompts]

[Services]

[Processes]

[EventSources]

[Encryption]

[Disks]
1=%Disk1%

[UserKeyNames]

[Icons]
Product = %ProductNameShort%.ico, 0, 000000, ICON

[Options]
Installer = %InstallerName%, COPYALWAYS, Installer, "%InstallerDesc%"
Product   = %ProductName%,   COPYALWAYS, Product,   "%ProductDesc%"

[OptionDependencies]

[OptionGroups]

[Installer]
1:..\..\..\..\User\Setup.exe,          %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupDeu.chm,       %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\SetupEnu.chm,       %CommonSetupDir%, OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP, 0
1:..\..\..\..\User\Mx42SynSem.dll,     %System%,         OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP WINDOWS32, 0
1:..\..\..\..\User\x64\Mx42SynSem.dll, %System%,         OPTIONAL USEFILENAME DIRECTORY NOSIZEWARNING SETUP WINDOWS64, 0
1:%SetupInfDir%\Setup.inf,                             , NORMAL,                                             0
1:%Temp%\Setup64.exe,                  %CommonSetupDir%\Setup.exe, OPTIONAL NOSIZEWARNING SETUP ALWAYS WINDOWS64,      0

[FileCheckMachine]
ReplaceEnv V_MachineValuesPath
If DoesFileExist ("%V_MachineValuesPath%\%ComputerName%.ini") == "0" Then "FileIsntThere" EndIf

[FileCheckClient]
ReplaceEnv V_UserValuesPath
If "%UserDomain%" <> "%ComputerName%" Then "CheckClientFile" EndIf

[CheckClientFile]
If DoesFileExist ("%V_UserValuesPath%\%WindowsUser%.ini") == "0" Then "FileIsntThere" EndIf

[FileIsntThere]
ErrorLogMsg <Error>
Abort

[Product]
;#FileCheckMachine, MACHINE
;#FileCheckClient, CLIENT

;ReplaceEnv <Variable>

#Set:Product, DONTDELETE
#Reg:OnUninstallProduct, DELETE
#Reg:Product, DONTDELETE
#Ini:Product, DONTDELETE
#Security:Product
#Set:Uninstall, DELETE
#Set:ChangeMSISourcelist, DONTDELETE

[Set:Product]
Del "%MSILogFile%"
IF DoesRegKeyExist ("HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{0F7652AB-B272-4B58-89AC-119F273F3381},UnInstallString") == "1" Then 

"RepairMSI" Else "InstallMSI" EndIf

[RepairMSI]
AddMeter 50
Call MsiExec /Fvomus "%SRC%\zarafaclient-6.30.0.msi"   REBOOT=REALLYSUPPRESS ARPSYSTEMCOMPONENT=1 /QB-! /Li "%MSILogFile%"
IF DoesTextInFileExist ("%ReInstSuccessMessage1031%", "%MSILogFile%") == "0" & DoesTextInFileExist ("%ReInstSuccessMessage1033%", "%MSILogFile%") == "0" 

Then "AbortMSIInst" EndIf
Del "%MSILogFile%"

[InstallMSI]
AddMeter 50
Call MsiExec /I "%SRC%\zarafaclient-6.30.0.msi"   REBOOT=REALLYSUPPRESS ARPSYSTEMCOMPONENT=1 /QB-! /Li "%MSILogFile%"
If DoesRegKeyExist ("HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{0F7652AB-B272-4B58-89AC-119F273F3381},UnInstallString") == "0" Then 

"AbortMSIInst" EndIf
Del "%MSILogFile%"

[Set:Uninstall]
-Del "%MSILogFile%"
If DoesRegKeyExist ("HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{0F7652AB-B272-4B58-89AC-119F273F3381},UnInstallString") == "1" Then 

"AbortMSIUnInst" EndIf
-Call MsiExec /X {0F7652AB-B272-4B58-89AC-119F273F3381} REBOOT=REALLYSUPPRESS /QB-! /Li "%MSILogFile%"
-AddMeter 50

[AbortMSIInst]
ErrorLogMsg %ErrorLogMessage% ErrorLevel: %ErrorLevel%
Abort

[AbortMSIUnInst]
-Abort
-ErrorLogMsg %ErrorLogMessage% ErrorLevel: %ErrorLevel%

[SET:ChangeMSISourcelist]
ReplaceRegValue (HKCR,"Installer\Products\%V_MSIInstallerID%\Sourcelist","LastUsedSource","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)
ReplaceRegValue (HKCR,"Installer\Products\%V_MSIInstallerID%\Sourcelist\Net","1","\\%EmpirumServer%","\\%%EmpirumServer%%", 1)

[Reg:OnUninstallProduct]

[Reg:Product]

[Ini:Product]

[Security:Product]

[Shell:Installer]
;%ProductName%\%ProductName% Setup, %ReinstallString%
;%ProductName%\%ProductName% %Uninstallation%, %UninstallString%, , , , , 1, ,

[Shell:Product]


Verfasst: 20. Aug 2009, 14:03
von AFiedler
Du fragst nach der Installation mit RegKeyExist die erfolgreiche Installation ab, eventuell liegt da der Fehler, ich würde dir empfehlen da auch anstatt mit RegKeyExist die ErrorLevel direkt abfragen, z.B. so:
If %ErrorLevel% <> "3010" & %ErrorLevel% <> "0" Then "AbortMSIInst" endif

Gruß

Verfasst: 21. Aug 2009, 12:51
von harald
@AFiedler

Ja so könnte man das Problem auch umgehen, aber eine Prüfung ob der Regkey nach der installtion existiert ist ja nicht verkehrt, schließlich soll das Programm ja auch mit diesem Deinstalliert werden.


Mit dem neuen Client 6.30.1 klappt es mit der RegKey Prüfung.


Ich vermute der 6.30.0 Client brauchte bei der Installation zu lange um den RegKey zu schreiben.

Re: MSI Fehler Errorlevel 0

Verfasst: 28. Apr 2011, 12:59
von harald
Wo liest der PackageEditor den UninstallKey aus?

Ich habe jetzt schon wieder ein Zarafapaket, dass mir einen falschen Uninstallkey liefert wenn ich es mit dem PackageEditor installiere.

Re: MSI Fehler Errorlevel 0

Verfasst: 30. Apr 2011, 14:43
von Hendrik_Ambrosius
Der Editor liest den gar nicht aus - Sie müssen den schon manuell bzw. via Copy&Paste aus RegEdit in den Paketeditor übernehmen.

Re: MSI Fehler Errorlevel 0

Verfasst: 03. Mai 2011, 12:23
von harald
Sorry, ich meinte natürlich den PackageWizard. Wenn ich damit das Paket erstelle bekomme ich folgenden

Uninstallkey:
{1D028A10-E9C6-4E86-AC19-BDCF5EF72DCF}

nach der Installation liegt das Programm unter diesem Uninstallkey
{F755E490-AB05-4415-A812-246D2DDC6C2F}


wird der Key evtl. verändert und wenn ja, wovon kann das abhängen.

Re: MSI Fehler Errorlevel 0

Verfasst: 03. Mai 2011, 15:58
von thahn
hi,

nun ja meiner Meinung liegt es am Hersteller der MSI.....

Mircosoft macht es ja vor.... de IE 8 hat auch eine GUID ... deinstalliert wird er aber über einen anderen Eintrag....
Das macht auch das Paketieren aus. Man muss immer überprüfen, was der Software-Hersteller gerne benutzen möchte bei der Installation / Deinstallation / Repair. Aber zu 80 % passt es bei einer MSI Routine meist.

Adobe ist auch einer dieser speziellen Hersteller, immer abhängig welches Product man von denen paketiert ,-)

cYa

Re: MSI Fehler Errorlevel 0

Verfasst: 01. Jul 2011, 13:09
von ColorInk
Hi, ich beiße mir gerade an genau diesen Fehler die Zähne aus.
Die Installation läuft Fehlerfei (MSILogfile "Installation operation completed successfully.", dennoch erscheint
"ErrorLogMsg: Die Installation/Deinstallation wurde mit einer Fehlermeldung abgebrochen! ErroLevel: 0"

Code: Alles auswählen

Call MsiExec /I "%SRC%\Agent_x64.MSI" ALLUSERS="1"   REBOOT=REALLYSUPPRESS ARPSYSTEMCOMPONENT=1 /qb-! /Li "%MSILogFile%"
If %ErrorLevel% == "3010" Then "RebootRequired" EndIf
Es muss doch möglich sein, dem Empirum "beizubrigen", dass die Installation mit oder trotz Errorlevel: 0 erfolgreich gewesen ist.

Wer kann helfen, ich weiß irgentwie nicht nicht mehr weiter. :(

Re: MSI Fehler Errorlevel 0

Verfasst: 01. Jul 2011, 13:59
von Hendrik_Ambrosius
Klar, dafür einfach die Abprüfung auf den RegKey entfernen und die Abprüfung nach ErrorLevel nach der 3010-Abfrage einbauen:
If %ErrorLevel% <> "0" Then "AbortMSIInst" EndIf

Re: MSI Fehler Errorlevel 0

Verfasst: 01. Jul 2011, 18:13
von ColorInk
Hendrik_Ambrosius hat geschrieben:Klar, dafür einfach die Abprüfung auf den RegKey entfernen und die Abprüfung nach ErrorLevel nach der 3010-Abfrage einbauen:
If %ErrorLevel% <> "0" Then "AbortMSIInst" EndIf
Verdam... :oops:
Das hatte ich doch ausprobiert. Es hat aber nicht geklappt.
Kann nicht sein, oder?

Ich setzte
If %ErrorLevel% <> "0" Then "AbortMSIInst" EndIf
einfach hinter
If %ErrorLevel% == "3010" Then "RebootRequired" EndIf
in eine neue Zeile, richtig?

Dann habe ich da wohl noch irgentwo einen Dreher eingebaut, schließlich nahte das Wochenende.
Ich werde es am Montag nochmal versuchen ...

Danke und schönes Wochenende.

Re: MSI Fehler Errorlevel 0

Verfasst: 04. Jul 2011, 07:50
von ColorInk
Okay, das mit dem If %ErrorLevel% <> "0" Then "AbortMSIInst" EndIf war schon richtig, ich hatte aber die Zeile mit dem Regkey nicht gelöscht.

VielenDank nochmal.