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 bleibt bei Deinstall. unter windows\installer


1 reply to this topic

Dattel

Dattel
  • Members
  • 10 posts

Posted 03 August 2005 - 15:54

Hi,

hab ein sonderbares Phänomen.
Ich verteile ein MSI über ein C++ Programm.

Meine Properties setze ich über MsiSetProperty.
Am Ende wird MsiDoAction(hInstall, "INSTALL") ausgeführt und das MSI auch fehlerfrei installiert.

Die Deinstallation läuft analog dazu.
MsiSetProperty(hInstall, "REMOVE","ALL");
MsiDoAction(hInstall, "INSTALL");

Dummerweise bleibt das gecachte MSI File aber unter dem Verzeichnis C:\Windows\Installer weiterhin bestehen

verwende ich die Funktion "UINT MsiInstallProduct( LPCTSTR szPackagePath, LPCTSTR szCommandLine);", dann wird auch bei der Deinstallation das File abgeräumt. Dummerweise brauche ich aber die Variante mit MsiSetProperty und MsiDoAction.


Woran könnte das liegen?? Bin langsam am verzweifeln...

Danke schonmal für Eure Mühen

Dattel

Dattel
  • Members
  • 10 posts

Posted 07 September 2005 - 09:49

ich hab noch ein paar Zusatzinformationen sammeln können hierzu...

Also meine Vermutung sieht sieht wie Folgt aus:

Da ich die MSI-Datenbank öffne habe ich ein offenes Handle auf eine "Datei" - genau die gecachte InstallerDatenbank. Aus diesem Grund wird diese Datei am Ende der Installation nicht gelöscht..

Wenn ich die Deinstallation per "MSIEXEC /x {Product-Code} /qb /l*vx log.txt" tätige, dann tauchen folgende Zeilen im Log auf.

CODE

.
.
.
MSI (s) (C8:34) [18:10:53:868]: Scheduling file 'C:\WINDOWS\Installer\1a13cc0.msi' for deletion during post-install cleanup (not post-reboot).
.
.
.



und ganz am Ende nach der Ausgabe der Properties folgendes

CODE

MSI (s) (C8:34) [18:11:15:562]: Cleaning up uninstalled install packages, if any exist
MSI (s) (C8:34) [18:11:15:562]: Post-install cleanup: removing installer file 'C:\WINDOWS\Installer\1a13cc0.msi'



Leider finde ich hierzu nicht sehr viel im Internet aber vielleicht kann mir ja jemand dazu was genaueres sagen. Es muss ja irgendwie möglich sein, diese Aktion auch per Hand zu starten wenn man soetwas per API versucht.