(Dev 7.01 GER, MSI 2.0/1.2)Ich versuche aus einem Standard Setup heraus ein anderes, selbstgeschriebenes Setup (als vom Benutzer wählbares Feature) zu starten. Bei meiner Suche habe ich drei Möglichkeiten gefunden:
- Aufruf Setup.exe mit LaunchAppAndWait (Führt zu Problemen, da das Skript NICHT wartet, da das aufgerufene Setup wiederum den WindowsInstaller aufruft, und nach der Beschreibung der Funktion nur auf den ersten aufgerufenen Prozeß gewartet wird.)
- Aufruf msiexec.exe mit LaunchAppAndWait (Hier bekommen ich die Fehlermeldung, dass zwei msi-Prozesse miteinander konkurrieren.)
Die zwei waren also nicht, bleibt die dritte Variante:
- Einbinden der custom action vom Typ 7/23 für die Installation und 39 für die Deinstallation in die "Ausführen"-Sequenz. Neben einem Problem mit Fehler -1603 scheint dieser Weg zwar erfolgreich zu sein, aber ich weiß nicht wie ich die Ausführung der custom action an die Auswahl der Benutzers (Feature) koppeln kann. - Weiß jemand Hilfe - oder eine weitere Möglichkeit
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.
Eingebettetes Setup
Started by
Arno Birk
, Oct 09 2002 14:15
4 replies to this topic
Posted 09 October 2002 - 19:47
Schau mal in der MSI Hilfe unter Conditional Statement Syntax.
&FeatureName=3
ist hier wahrscheinlich eine sinnvolle Bedingung.
&FeatureName=3
ist hier wahrscheinlich eine sinnvolle Bedingung.
Stefan Krüger
InstallSite.org twitter facebook
Posted 11 October 2002 - 09:13
Danke, hört sich gut an.
Die Ausführung hat allerdings nicht geklappt. Ich erhalte den Fehler 2335 - interner Fehler, zu dem ich keine weitere Beschreibung gefunden habe (IS Knowledge base, MSDN). Anschließend kommt dann der Fehler -1603 hoch.
In Protokoll ("/verbose") bin ich auf die folgenden Zeilen gestoßen:
...
Aktion gestartet um 103:39: MsiPublishAssemblies.
Aktion beendet um 103:39: MsiPublishAssemblies. Rückgabewert 1.
Aktion gestartet um 103:39: PublishFeatures.
Aktion beendet um 103:39: PublishFeatures. Rückgabewert 1.
Aktion gestartet um 103:39: PublishProduct.
DEBUG: Error 2335: Path: C:\WINNT\Installer\ is not a parent of C:\WINNT\Profiles\bir01\Eigene Dateien\MySetups\PerpedesPlus\Produktkonfiguration 1\Release 1\DiskImages\DISK1\
Interner Fehler 2335. C:\WINNT\Installer\, C:\WINNT\Profiles\bir01\Eigene Dateien\MySetups\PerpedesPlus\Produktkonfiguration 1\Release 1\DiskImages\DISK1\
Aktion beendet um 103:42: PublishProduct. Rückgabewert 3.
Aktion beendet um 103:42: INSTALL. Rückgabewert 3.
...
Also offensichtlich scheitert die Aktion PublishProduct ! ??
arno
P.S. Ich werde nun zunächst 'mal in Urlaub gehen, bevor ich mich weiter mit diesem Problem herumschlage.
Die Ausführung hat allerdings nicht geklappt. Ich erhalte den Fehler 2335 - interner Fehler, zu dem ich keine weitere Beschreibung gefunden habe (IS Knowledge base, MSDN). Anschließend kommt dann der Fehler -1603 hoch.
In Protokoll ("/verbose") bin ich auf die folgenden Zeilen gestoßen:
...
Aktion gestartet um 103:39: MsiPublishAssemblies.
Aktion beendet um 103:39: MsiPublishAssemblies. Rückgabewert 1.
Aktion gestartet um 103:39: PublishFeatures.
Aktion beendet um 103:39: PublishFeatures. Rückgabewert 1.
Aktion gestartet um 103:39: PublishProduct.
DEBUG: Error 2335: Path: C:\WINNT\Installer\ is not a parent of C:\WINNT\Profiles\bir01\Eigene Dateien\MySetups\PerpedesPlus\Produktkonfiguration 1\Release 1\DiskImages\DISK1\
Interner Fehler 2335. C:\WINNT\Installer\, C:\WINNT\Profiles\bir01\Eigene Dateien\MySetups\PerpedesPlus\Produktkonfiguration 1\Release 1\DiskImages\DISK1\
Aktion beendet um 103:42: PublishProduct. Rückgabewert 3.
Aktion beendet um 103:42: INSTALL. Rückgabewert 3.
...
Also offensichtlich scheitert die Aktion PublishProduct ! ??
arno
P.S. Ich werde nun zunächst 'mal in Urlaub gehen, bevor ich mich weiter mit diesem Problem herumschlage.
Posted 11 October 2002 - 19:14
Die Fehlernummern sind in der MSI Hilfe beschrieben.
Die meldung könnte auf ein Problem im Directory Table hindeuten. Hast du mal eine Validierung über das MSI-Paket laufen lassen?
(Schönen Urlaub)
Die meldung könnte auf ein Problem im Directory Table hindeuten. Hast du mal eine Validierung über das MSI-Paket laufen lassen?
(Schönen Urlaub)
Stefan Krüger
InstallSite.org twitter facebook
Posted 04 December 2002 - 15:34
Arno,
Eine kleine Anmerkung zum Thema "LaunchAppAndWait()": Diese Funktion ist abhängig davon, ob die gestartete Anwendung ein Fenster erzeugt und wann dieses Fenster wieder abgebaut wird. Das kann dazu führen, dass die Funktion wesentlich früher terminiert als beabsichtigt.
Wesentlich besser ist die Variante _LaunchAppEx() von Stefan Krüger, die ohne den FindWindow()-Schwachsinn auskommt und statt dessen vernünftigerweise WaitForSingleObject() verwendet. Ich verwende diese Funktion grundsätzlich anstelle von LaunchAppAndWait(), und es klappt! Selbst Programme ohne Oberfläche können damit synchron ausgeführt werden.
Die Dateien für _LaunchAppEx() (.h und .rul) können hier im InstallSite runtergeladen werden.
Eine kleine Anmerkung zum Thema "LaunchAppAndWait()": Diese Funktion ist abhängig davon, ob die gestartete Anwendung ein Fenster erzeugt und wann dieses Fenster wieder abgebaut wird. Das kann dazu führen, dass die Funktion wesentlich früher terminiert als beabsichtigt.
Wesentlich besser ist die Variante _LaunchAppEx() von Stefan Krüger, die ohne den FindWindow()-Schwachsinn auskommt und statt dessen vernünftigerweise WaitForSingleObject() verwendet. Ich verwende diese Funktion grundsätzlich anstelle von LaunchAppAndWait(), und es klappt! Selbst Programme ohne Oberfläche können damit synchron ausgeführt werden.
Die Dateien für _LaunchAppEx() (.h und .rul) können hier im InstallSite runtergeladen werden.