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

FindRelatedProducts während InstallUI / Uninstall


5 replies to this topic

guestuser

guestuser
  • Members
  • 5 posts

Posted 24 June 2003 - 09:34

Hallo,

wie wird FindRelatedProducts während Uninstall aktiviert ?
Trotz Bedingung=1 wird es während uninstall nicht aufgerufen.
Während install funktioniert es (FindRelatedProducts wird aufgerufen und findet ProductCode).

(Wie ermittelt man ProductCode eines installierten Produkts während uninstall sonst ?)

Zusatz-Info:
ich möchte ein Produkt vor der Deinstallation meines Produktes deinstallieren.
Dazu verwende ich
- "msiexec /x <productCode>" während InstallUI, Uninstall und
- FindRelatedProducts / UpgradeTable, um ProductCode herauszufinden.

Log, während Uninstall:
QUOTE
Aktion gestartet um 16:10:13: ISSetAllUsers.
1: InstallShield - ISSetAllUsers (Begin)
1: Opening Database
1: {1DA724D9-CBAC-4FD8-9E33-B025F725F6C4}  1.00.0001  2
1:  Produkt(BSub) {2BB3F31A-5DED-46EA-9B8B-DAEDDC0F812B} 1031 1.00.0000  ***Related***
1:  ALLUSERS=0
1: Closing Database
1: InstallShield - ISSetAllUsers (End)
Aktion beendet um 16:10:13: ISSetAllUsers. Rückgabewert 1.
     ...
Aktion gestartet um 16:10:14: FindRelatedProducts.
Aktion beendet um 16:10:14: FindRelatedProducts. Rückgabewert 0.


Upgrade-Table, Eintrag für zu deinstallierendes Produkt:
QUOTE
UpgradeCode {1DA724D9-CBAC-4FD8-9E33-B025F725F6C4}
VersionMin
VersionMax 1.00.0001
Language
Attributes 2
Remove
ActionProperty OLD_TO_UNINISTALL


InstallUISequence-Table (in *.ism und *.msi)
QUOTE
Action; Condition
ISSetAllUsers; 1
FindRelatedProducts; 1


Verewendet:
- InstallShield Developer 7.01
- Basic MSI Project

Mit freundlichen Grüßen,
guestuser

Edited by guestuser, 24 June 2003 - 10:00.


carsten711

carsten711
  • Members
  • 98 posts

Posted 24 June 2003 - 10:23

Hallo,

ich glaub mal gelesen zu haben, das der Installer einen 4 Stelligen Wert hinter dem "." in der Upgrade Tabelle
nicht auswertet. Verusche doch mal einen Wert "1.0.1" als Max Wert in der Upgrade Tabelle. Den Wert unter Attribut solltest Du vielleicht auch mal checken. Den Wert "1792" könntest Du mal testen. Aber für den entgültigen Wert solltest Du mal in der MSI Hilfe schaun,unter "Upgrade Table", denn mit dem Wert "2" als Attribut wird VersionMAX nicht ausgewertet. cool.gif

Gruß
Carsten

guestuser

guestuser
  • Members
  • 5 posts

Posted 24 June 2003 - 10:53

Hallo Carsten,

danke für die Tips. Bei Installation funktioniert's, bei Deinstallation noch nicht.
Bei Deinstallation:
ISSetAllUsers findet den ProductCode,
FindRelatedeProducts (sollte ProductCode in ActionProperty schreiben), wird nicht aufgerufen (Rückgabewert 0) - wenn ich das richtig verstehe.


Log, Deinstallation:
QUOTE
Aktion gestartet um 11:37:51: ISSetAllUsers.
1: InstallShield - ISSetAllUsers (Begin)
1: Opening Database
1: {1DA724D9-CBAC-4FD8-9E33-B025F725F6C4}  1.0.1  1792
1:  Produkt(BSub) {2BB3F31A-5DED-46EA-9B8B-DAEDDC0F812B} 1031 1.0.0  ***Related***
1:  ALLUSERS=0
1: Closing Database
1: InstallShield - ISSetAllUsers (End)
...
Aktion gestartet um 11:37:52: FindRelatedProducts.
Aktion beendet um 11:37:52: FindRelatedProducts. Rückgabewert 0.


Bei Installation funktioniert es:
QUOTE
Aktion gestartet um 11:33:58: ISSetAllUsers.
1: InstallShield - ISSetAllUsers (Begin)
1: Opening Database
1: {1DA724D9-CBAC-4FD8-9E33-B025F725F6C4}  1.0.1  1792
1:  Produkt(BSub) {2BB3F31A-5DED-46EA-9B8B-DAEDDC0F812B} 1031 1.0.0  ***Related***
1:  ALLUSERS=0
1: Closing Database
1: InstallShield - ISSetAllUsers (End)
...
Aktion 11:33:58: FindRelatedProducts. Verwandte Anwendungen werden gesucht
FindRelatedProducts: Anwendung gefunden: {2BB3F31A-5DED-46EA-9B8B-DAEDDC0F812B}
Aktion beendet um 11:33:58: FindRelatedProducts. Rückgabewert 1.


Zusatz-Info:
Upgrade-Table jetzt:
QUOTE
UpgradeCode {1DA724D9-CBAC-4FD8-9E33-B025F725F6C4}
VersionMin
VersionMax 1.0.1
Language
Attributes 1792
Remove
ActionProperty OLD_TO_UNINISTALL


Gruß
guestuser

Edited by guestuser, 24 June 2003 - 11:03.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 24 June 2003 - 15:40

Zitat aus dem SDK:
QUOTE
The FindRelatedProducts action only runs the first time the product is installed. The FindRelatedProducts action does not run during maintenance mode or uninstallation.

Die Funktion wird also nur bei der Erstinstallation ausgeführt.

Martin Aigner

Martin Aigner
  • Full Members
  • 133 posts

Posted 03 July 2003 - 09:41

Ein kleiner Workaround für Dich:

In der Registry unter HKEY_CLASSES_ROOT\Installer\UpgradeCodes (Win NT) bzw. HKEY_CURRENT_USER\Software\Microsoft\Installer\UpgradeCodes (Win9X) ist eine Zuweisung zwischen Upgradecode und Produktcode.

Allerdings ist hier keine Versionsnummer eingetragen, die muss dann durch einen Windows Installer API-Call aus dem gecacheten MSI-Paket ausgelesen werden.

Aber Vorsicht: Dieser Workaround wird von Microsoft nicht supported. Wenn den Redmondern morgen eine neue Stelle für diese Informationen einfällt, dann funktioniert der Workaround nicht mehr.
SD-Technologies GmbH
Macrovision Certified Training Partner.
More infomation at www.sd-technologies.de

Martin Aigner

Martin Aigner
  • Full Members
  • 133 posts

Posted 15 July 2003 - 07:44

Nochmal eine Anmerkung:
Der Produkt-Code kann auch über die API-Funktion MsiEnumRelatedProducts ermittelt werden!

Die Versionsnummer muss jedoch ebenfalls aus dem gefundenen Paket ausgelesen werden.
SD-Technologies GmbH
Macrovision Certified Training Partner.
More infomation at www.sd-technologies.de