PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MSI Pakete analysieren


Monger
2009-09-30, 12:20:41
Doofer Titel, aber ich sitz wiedermal auf dem Schlauch...

Mein eigentliches Problem ist, dass ich in einem Windows Installer Projekt (.NET) bei der Installation abfragen will, ob eine bestimmte Software installiert ist, und wo genau.

So wie ich mir das gerade herleite, bräuchte ich dafür die CLSID des jeweiligen Produkts. Nur: wie finde ich die raus? Hab nach kurzer Googelei gefunden, dass das mit dem MSI Spy gehen sollte, kann aber den nirgendwo finden.

Also: kann mir jemand einen Tipp geben, wie ich die CLSID eines Programms herausfinde? Oder alternativ: wie ich prüfen kann, wo und ob eine bestimmte Software installiert ist?

Gast
2009-09-30, 12:34:00
hmm eigentlich sollte das in der registry stehen

Monger
2009-09-30, 12:58:06
Möglich. Nur wo? Ich hab Einträge vom Windows Installer gefunden, irgendwo unter HKLM\Software\Microsoft\Windows\Uninstall - das scheinen aber nicht die selben Schlüssel zu sein wie das Setup Projekt verlangt.

Außerdem sind die Angaben dort über den Installationsort ein bißchen wacklig. Aktuell ziehe ich den Installationsort tatsächlich über irgendeinen Registry Key raus - aber mit dem letzten Patch ist dieser Key leer. Daraus schließe ich, dass ich mich darauf besser nicht verlassen sollte.

AintCoolName
2009-09-30, 13:35:37
Das mit dem CLSID geht natürlich auch nur wenn die andere software auch per MSI Installiert wurde, andere Installer arbeiten nicht unbedingt auf die art. In dem fall kann man nur auf das vorhanden sein bestimmter Registry Keys prüfen.

Ist leider 5 jahre her das ich was mit MSI gemacht habe aber ich glaube dieser Key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer und dieser HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer war von bedeutung. Um ein MSI File zu öffen um sich die ProductCodes u.s.w anzuschauen kann man ORCA benutzen http://www.technipages.com/download-orca-msi-editor.html

Monger
2009-09-30, 16:15:41
Hab grade rausgefunden, dass meine Software per InstallShield installiert...

Mir scheint, ich geh da irgendwie falsch ran. Ich mein: zumindest Windows weiß doch, wo welche Software installiert ist, und zwar unabhängig vom Installer. Gibt es vielleicht dort einen Weg, um da ranzukommen?

Andererseits: im Grunde versuche ich mich ja gerade um einen Bug einer Drittsoftware herumzumogeln. Vielleicht sollte ich die einfach mal auf ihr Problem aufmerksam machen...

AintCoolName
2009-09-30, 16:36:32
Windows weiß auch nur das was in der Registry unter: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall oder HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall steht. Das was in den Keys steht wird in der Systemsteuerung unter Software aufgelistet. Wenn der Installer diese Einträge nicht vornimmt dann weiß Windows garnichts von installierten Programmen. Installshield kann übrigens auch MSI Pakete erzeugen.

Monger
2009-09-30, 16:55:15
Dann haben sie an der Stelle schlicht die Installation versaubeutelt, und ich bin chancenlos. Dann weiß nämlich nichtmal mehr Windows, wo die Software installiert ist. Dann wird es wirklich Zeit für einen Bugreport.

Danke!