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

Eingebettetes Setup


4 replies to this topic

Arno Birk

Arno Birk
  • Members
  • 8 posts

Posted 09 October 2002 - 14:15

(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 ???

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 October 2002 - 19:47

Schau mal in der MSI Hilfe unter Conditional Statement Syntax.
&FeatureName=3
ist hier wahrscheinlich eine sinnvolle Bedingung.

Arno Birk

Arno Birk
  • Members
  • 8 posts

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 10:03:39: MsiPublishAssemblies.
Aktion beendet um 10:03:39: MsiPublishAssemblies. Rückgabewert 1.
Aktion gestartet um 10:03:39: PublishFeatures.
Aktion beendet um 10:03:39: PublishFeatures. Rückgabewert 1.
Aktion gestartet um 10:03: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 10:03:42: PublishProduct. Rückgabewert 3.
Aktion beendet um 10:03: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.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

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)

wernerf

wernerf
  • Members
  • 22 posts

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.