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

Benutzerdefinierte Aktion soll eine .EXE anstarten


1 reply to this topic

Daniel

Daniel
  • Full Members
  • 1 posts

Posted 08 January 2009 - 11:20

Hallo Zusammen,

ich erstelle zur Zeit eine Installation mit IS 2009 Premier Edition und muss vorwarnen, dass ich weder viel Ahnung von Installationen überhaupt, bzw. auch wenig Ahnung von IS selbst habe bis jetzt. wink.gif

Mein Problem:
Am Ende der Installation soll eine benutzerdefinierte Aktion eine vorher installierte EXE-Datei anstarten. Diese EXE dient dazu einen Dienst zu installieren und ihn dann auch direkt anzustarten.

Soweit habe ich diese benutzerdefinierte Aktion auch schon angelegt. Eingeordnet ist diese nach der UI-Sequenz "nach CostInitalize" sowie nach der Installationsausführungssequenz "nach InstallFinalize". Erstelle ich aber jetzt ein Build, so bringt IS mir einen Warnhinweis, dass ich "eine Bedingung angeben soll, die überprüft ob die Quelldatei lokal installiert wird, damit die Aktion erfolgreich ausgeführt werden kann". Allerdings weiß ich nicht, wie ich eben genau dies machen könnte.

Wenn ich dann das Setup Testweise zu installieren versuche, bricht dieses mit einer Fehlermeldung ab.

Vielen Dank im voraus und viele Grüße
Daniel smile.gif


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 13 January 2009 - 11:40

1. Muss es wirklich eine Custom Action dafür sein? Wndows Installer kann Dienste installieren und starten. Das wäre die beste Lösung.

2. Die Aktion darf erst ausgeführt werden, nachdem die entsprechende Datei installiert wurde. Dazu sollte sie nur in der Execute-Sequenz stehen und zwar an geeigneter Stelle zwischen CopyFiles und InstallFinalize. Aie Aktion sollte hierzu als "deferred in System Context" markiert sein. Außerdem sollte es eine entsprechende Rollback Action geben, die den Dienst anhält und entfernt falls die Installation abgebrochen wird.

3. Die Bedingung könnte lauten:
&FeatureName=3
was bedeutet, das das genannte Feature in diesem Instalaltionsvorgang gerade lokal installiert wird. Näheres zu diesen Bedingungen steht in der MSI-Hilfe unter "Conditional Statement Syntax".

4. Du brauchst eine entsprechende Custom Action die den Dienst bei der Deinstallation wieder wegräumt. Die Bedingung hierfür wäre:
&FeatureName=2

5. Du musst überlegen, was bei den anderen Wartungsoperationen passieren soll:
- Reinstallation (Reparatur), entweder über die Systemsteuerung aufgerufen oder automatisch wenn Windows Installer ein Problem feststellt.
- Modify (Änderung der Featureauswahl über die Systemsteuerung)
- Update, wobei Minor und Major Updates getrennt zu betrachen sind.