Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

MSI-Paket lässt sich nach Inst. nicht entfernen


3 replies to this topic

Stefan S

Stefan S
  • Full Members
  • 8 posts

Posted 09 August 2007 - 09:43

Hi,

ich habe folgendes Problem:
Nach der Installation eines MSI-Paketes lässt es sich nicht mehr entfernen (getestete OS: Vista Ultimate und XP Prof.).
Ich erstelle das Paket mit VC 2005.
Und da ich immer mal etwas ändere, habe ich es bestimmt schon 100mal erstellt und es ging immer problemlos.
Zweimal bis jetzt sind dabei allerdings auch Pakete entstanden die sich wie gesagt nach der Installation nicht mehr entfernen lassen. Die gemachten Änderungen sind wirklich belanglos (z.B. eine IF-Bedingung mehr in einer Benutzerdefinierten-Funktion), vielleicht hätte auch ein Rebuild gerreicht.
Mir kommt es fast so vor, dass es ein sporadische Fehler beim linken ist.
Kommt so etwas vor?

Hier einmal die Log-Auszüge von einer funktionierenden und einer fehlerhaften Version bei der Deinstallation (die zwei benutzerdefinierten Aktionen rufen die Funktionen fnVCRedistCheck und fnUnInstallCheck in einer über exclude eingebundenen dll auf)

Fehlerhaft:

CODE
------------ bla bla -------------------
MSI (s) (74:E8) [17:50:27:018]: Executing op: ActionStart(Name=_22F8F877_8F35_489E_99D8_4231CFE23D0F,,)
MSI (s) (74:E8) [17:50:27:038]: Executing op: CustomActionSchedule(Action=_22F8F877_8F35_489E_99D8_4231CFE23D0F,ActionType=1025,Source=BinaryData,Target=fnVCRedistCheck,CustomActionData=TestApp Runtime 6.0 - Beta 334)
MSI (s) (74:E8) [17:50:27:148]: Creating MSIHANDLE (2188) of type 790536 for thread 3816
MSI (s) (74:10) [17:50:27:148]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI85EA.tmp, Entrypoint: fnVCRedistCheck
MSI (s) (74:10) [17:50:27:218]: Closing MSIHANDLE (2188) of type 790536 for thread 3816
-------------- ab hier unterscheiden sich die logs --------------
MSI (s) (74:E8) [17:50:27:278]: User policy value 'DisableRollback' is 0
MSI (s) (74:E8) [17:50:27:278]: Machine policy value 'DisableRollback' is 0
Aktion beendet um 17:50:27: InstallFinalize. Rückgabewert 3.
MSI (s) (74:E8) [17:50:27:399]: Executing op: Header(Signature=1397708873,Version=400,Timestamp=923307559,LangId=0,Platform=0,ScriptType=2,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttributes=0)
MSI (s) (74:E8) [17:50:27:399]: Executing op: DialogInfo(Type=0,Argument=0)
MSI (s) (74:E8) [17:50:27:419]: Executing op: DialogInfo(Type=1,Argument=TestApp Runtime 6.0 - Beta 334)
MSI (s) (74:E8) [17:50:27:459]: Executing op: RollbackInfo(,RollbackAction=Rollback,RollbackDescription=Aktion wird rückgängig gemacht:,RollbackTemplate=[1],CleanupAction=RollbackCleanup,CleanupDescription=Sicherungsdateien werden entfernt,CleanupTemplate=Datei: [1])
MSI (s) (74:E8) [17:50:27:499]: Executing op: ActionStart(Name=_22F8F877_8F35_489E_99D8_4231CFE23D0F,,)
MSI (s) (74:E8) [17:50:27:519]: Executing op: ProductInfo(ProductKey={5292097C-18AF-405F-AB05-7D122DF7952E},ProductName=TestApp Runtime 6.0 - Beta 334,PackageName=TestAppRuntime.msi,Language=0,Version=90374478,Assignment=0,ObsoleteArg=0,ProductIcon=_21F3885A18D238E15AAE81.exe,,PackageCode={F05504F5-BD3F-4EEF-A5F6-9E30F2A580A4},,,InstanceType=0,LUASetting=0,RemoteURTInstalls=0,ProductDeploymentFlags=3)
MSI (s) (74:E8) [17:50:27:549]: SHELL32::SHGetFolderPath returned: C:\Users\TestApp\AppData\Roaming
------------ bla bla ---------------



Funktionierend:

CODE
------------ bla bla ---------------
MSI (s) (74:9C) [17:23:33:559]: Executing op: ActionStart(Name=_22F8F877_8F35_489E_99D8_4231CFE23D0F,,)
MSI (s) (74:9C) [17:23:33:569]: Executing op: CustomActionSchedule(Action=_22F8F877_8F35_489E_99D8_4231CFE23D0F,ActionType=1025,Source=BinaryData,Target=fnVCRedistCheck,CustomActionData=TestApp Runtime 6.0 - Beta 337)
MSI (s) (74:9C) [17:23:33:629]: Creating MSIHANDLE (2184) of type 790536 for thread 3484
MSI (s) (74:70) [17:23:33:639]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIE744.tmp, Entrypoint: fnVCRedistCheck
MSI (s) (74:70) [17:23:33:759]: Closing MSIHANDLE (2184) of type 790536 for thread 3484
-------------- ab hier unterscheiden sich die logs --------------
MSI (s) (74:9C) [17:23:33:779]: Executing op: ActionStart(Name=_4C8956C8_F4D7_4D00_837F_881CA71B1511,,)
MSI (s) (74:9C) [17:23:33:789]: Executing op: CustomActionSchedule(Action=_4C8956C8_F4D7_4D00_837F_881CA71B1511,ActionType=1025,Source=BinaryData,Target=fnUnInstallCheck,CustomActionData=TestAppRuntime,TestApp Runtime 6.0 - Beta 337)
MSI (s) (74:9C) [17:23:33:839]: Creating MSIHANDLE (2185) of type 790536 for thread 3484
MSI (s) (74:24) [17:23:33:839]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIE822.tmp, Entrypoint: fnUnInstallCheck
MSI (s) (74:24) [17:23:33:940]: Closing MSIHANDLE (2185) of type 790536 for thread 3484
MSI (s) (74:9C) [17:23:33:940]: Executing op: ActionStart(Name=UnpublishFeatures,Description=Veröffentlichung von Produktfunktionen wird aufgehoben,Template=Funktion: [1])
MSI (s) (74:9C) [17:23:33:960]: Executing op: FeatureUnpublish(Feature=DefaultFeature,,Absent=2,Component=ugfggOX[21Gu-RUqek*c[s^c]EQnG.l=W_R0d=uv7spJ?UOt4@PK_1gCFHM8_'9ByhR!J9e'm8QQwl?.7.UhbZnb.@k9j&s7VsJx[mQ{aTBl2@'x3',s2IVI)
MSI (s) (74:9C) [17:23:33:980]: Note: 1: 1402 2: UNKNOWN\Installer\Features\418CE9FB71458884CA18B0CBDA7C007F 3: 2
MSI (s) (74:9C) [17:23:33:990]: Executing op: ActionStart(Name=RemoveODBC,Description=ODBC-Komponenten werden entfernt,)
MSI (s) (74:9C) [17:23:34:010]: Executing op: ODBCDriverManager(,BinaryType=0)
MSI (s) (74:9C) [17:23:34:010]: Executing op: ODBCDriverManager(,BinaryType=1)
MSI (s) (74:9C) [17:23:34:010]: Executing op: ActionStart(Name=RemoveRegistryValues,Description=Systemregistrierungwerte werden entfernt,Template=Schlüssel: [1], Name: [2])
MSI (s) (74:9C) [17:23:34:010]: Executing op: ProgressTotal(Total=1,Type=1,ByteEquivalent=13200)
MSI (s) (74:9C) [17:23:34:020]: Executing op: RegOpenKey(Root=-2147483646,Key=SOFTWARE\TestApp.\TestApp.Runner,,BinaryType=0,)
MSI (s) (74:9C) [17:23:34:020]: Executing op: RegRemoveValue(Name=Dir,Value=[TestApp_DIR],)
MSI (s) (74:9C) [17:23:34:040]: Executing op: ActionStart(Name=UnregisterExtensionInfo,Description=Erweiterungsserverregistrierung wird aufgehoben,Template=Erweiterung: [1])
MSI (s) (74:9C) [17:23:34:050]: Executing op: RegExtensionInfoUnregister(Feature=DefaultFeature,Component={C333EEBB-9D65-28FB-9419-8E8D7B03BFB4}[~]2,FileName=TOKEN,Extension=clc,ProgId=TestApp.License,,,,Order=1)
MSI (s) (74:9C) [17:23:34:060]: Note: 1: 1402 2: UNKNOWN\TestApp.License\shell\.clc\command 3: 2
MSI (s) (74:9C) [17:23:34:070]: Note: 1: 1402 2: UNKNOWN\TestApp.License\shell\open\command 3: 2
MSI (s) (74:9C) [17:23:34:070]: Note: 1: 1402 2: UNKNOWN\TestApp.License\shell\open\command 3: 2
MSI (s) (74:9C) [17:23:34:080]: Note: 1: 1402 2: UNKNOWN\TestApp.License\shell\open\command 3: 2
MSI (s) (74:9C) [17:23:34:080]: Note: 1: 1402 2: UNKNOWN\TestApp.License\shell\open\command 3: 2
MSI (s) (74:9C) [17:23:34:080]: Note: 1: 1402 2: UNKNOWN\TestApp.License\shell\open\command 3: 2
MSI (s) (74:9C) [17:23:34:090]: Executing op: ActionStart(Name=UnregisterProgIdInfo,Description=Registrierung von Programm-IDs wird aufgehoben,Template=Programm-ID: [1])
MSI (s) (74:9C) [17:23:34:100]: Executing op: RegProgIdInfoUnregister(ProgId=TestApp.License,,Extension=clc,,Icon=_6FEFF9B68218417F98F549.exe,IconIndex=0,,,,)
MSI (s) (74:9C) [17:23:34:150]: SHELL32::SHGetFolderPath returned: C:\Users\TestApp\AppData\Roaming
MSI (s) (74:9C) [17:23:34:160]: Executing op: ActionStart(Name=RemoveFiles,Description=Dateien werden entfernt,Template=Datei: [1], Verzeichnis: [9])
MSI (s) (74:9C) [17:23:34:170]: Executing op: ProgressTotal(Total=5,Type=1,ByteEquivalent=175000)
MSI (s) (74:9C) [17:23:34:180]: Executing op: SetTargetFolder(Folder=C:\programme\TestApp\)
MSI (s) (74:9C) [17:23:34:180]: Executing op: FileRemove(,FileName=TestAppClc2Reg.exe,,ComponentId={C333EEBB-9D65-28FB-9419-8E8D7B03BFB4})
MSI (s) (74:9C) [17:23:34:240]: Verifying accessibility of file: TestAppClc2Reg.exe
MSI (s) (74:9C) [17:23:34:330]: Executing op: SetTargetFolder(Folder=C:\Windows\system32\)
MSI (s) (74:9C) [17:23:34:330]: Executing op: FileRemove(,FileName=hinstd.dll,,ComponentId={48D673D5-B13B-4B4A-B4F4-67C146A7983F})
MSI (s) (74:9C) [17:23:34:410]: Verifying accessibility of file: hinstd.dll
MSI (s) (74:9C) [17:23:34:470]: Executing op: FileRemove(,FileName=haspds_windows.dll,,ComponentId={F9DF6D99-8C30-4295-912B-5480E0B71823})
MSI (s) (74:9C) [17:23:34:510]: Verifying accessibility of file: haspds_windows.dll
MSI (s) (74:9C) [17:23:34:570]: Executing op: FileRemove(,FileName=hdinst_windows.dll,,ComponentId={B3ACE17B-E493-4B19-A5A9-61E6ECC513F7})
MSI (s) (74:9C) [17:23:34:600]: Verifying accessibility of file: hdinst_windows.dll
MSI (s) (74:9C) [17:23:34:651]: Executing op: FileRemove(,FileName=hinst_msi.dll,,ComponentId={B1420A8A-0D47-4B37-83E7-271CB0D15F68})
MSI (s) (74:9C) [17:23:34:701]: Verifying accessibility of file: hinst_msi.dll
MSI (s) (74:9C) [17:23:34:761]: Executing op: ActionStart(Name=PublishProduct,Description=Produktinformationen werden veröffentlicht,)
MSI (s) (74:9C) [17:23:34:771]: Executing op: CleanupConfigData()
MSI (s) (74:9C) [17:23:34:771]: Executing op: RegisterPatchOrder(Continue=0,SequenceType=0,Remove=1)
MSI (s) (74:9C) [17:23:34:771]: Note: 1: 1402 2: UNKNOWN\Installer\Products\418CE9FB71458884CA18B0CBDA7C007F\Patches 3: 2
MSI (s) (74:9C) [17:23:34:771]: Executing op: RegisterPatchOrder(Continue=0,SequenceType=1,Remove=1)
MSI (s) (74:9C) [17:23:34:781]: Executing op: CleanupConfigData(RemovingProduct=1)
MSI (s) (74:9C) [17:23:34:781]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-21-3677770080-1261204685-679654619-1000\Products\418CE9FB71458884CA18B0CBDA7C007F\Patches 3: 2
MSI (s) (74:9C) [17:23:34:781]: Executing op: End(Checksum=0,ProgressTotalHDWord=0,ProgressTotalLDWord=1085000)
MSI (s) (74:9C) [17:23:34:851]: User policy value 'DisableRollback' is 0
------------ bla bla ---------------


Stefan S

Stefan S
  • Full Members
  • 8 posts

Posted 09 August 2007 - 10:10

Ich hab auch überlegt die dll im fehlerhaften MSI-Paket testweise zu ersetzen. Geht das? In Orca hab ich keine Funktion gefunden, mit msi2xml kann man die Dll zumindestens wieder rausholen.


//Edit: geht mit xml2msi, bringt aber nix

Edited by Stefan S, 09 August 2007 - 10:25.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 August 2007 - 19:40

Es könnte am Rückgabewert der Funktion fnVCRedistCheck liegen, oder daran dass die Funktion nicht aufgerufen werden kann (z.B. Funktion nicht exportiert, Funktionsname nicht in .def Datei und daher dekoriert, fehlende Laufzeitdatei)

Stefan S

Stefan S
  • Full Members
  • 8 posts

Posted 10 August 2007 - 08:24

Danke für die Antwort.

Die Funktion ist schon eine Weile unverändert drin und funktionierte immer fehlerfrei (sie ist dementsprechend auch in der .def drin). Rückgabewert kann nur ERROR_SUCCESS und ERROR_INSTALL_USEREXIT sein. Bei zweiterem würde vorher auch ein Dialog kommen (habe nicht im Silentmodus installiert), also muss der Rückgabewert ERROR_SUCCESS sein.

Ich hab mich nochmal mit xml2msi probiert. Wenn ich die dll in dem defekten Paket austausche und damit installiere, kann ich es auch wieder deinstallieren.
Wenn ich alternativ im Orca die benutzerdefinierten Funktionen der Deinstallation aus dem defekten Paket entferne, tut es auch.

Der Orca-Validationcheck bringt die selben Ergebnisse wie bei "gesunden" Paketen.

Alles deutet auf einen Build-Fehler hin, was ich sehr beunruhigend finde. So muss ich das Paket jetzt jedesmal ausführlich testen. Die Frage ist: ist das auch schon anderen passiert?

Um beim nächsten fehlerhaften Paket vielleicht mehr Informationen zu bekommen, logge ich jetzt in jeder Custom Action mit.