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

Ausführbare Exe aufrufen


8 replies to this topic

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 28 September 2009 - 13:26

Hallo Leute

Ich habe ein Basic MSI und würde gerne wenn alle Dateien kopiert und alle DLLs registriert wurden eine Exe ausführen. Diese exe liegt bei einer Komponente. Wenn diese Komponente installiert wird soll die exe ausgeführt werden. Manuell mache ich es mit Ausführen->cmd und dann die exe mit "/register" dahinter. Wie realisere ich das, dass es das MSI automatisch macht? Also einfach die exe aufrufen mit "/register" dahinter.

Liebe Grüße
Sunflower84

Edited by Sunflower84, 28 September 2009 - 14:12.


Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 28 September 2009 - 15:41

Ich habe jetzt eine benutzerdefinierte Aktion gemacht.
Programmdateischlüssel: "ausführbare exe"
Befehlszeile: "/register"
Rückgabeverarbeitung: Synchron(Exit Code ignorieren)
In-Script-ausführen: "commit ausführen"
Ausführungssequenz installieren: "Nach InstallFiles

Das funktioniert auch. Ich möchte aber das bei einer Deinstallation(Remove) in der Befehlszeile ein "/unregister" steht. Wie mache ich denn das?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 28 September 2009 - 20:07

Commit ist schlecht, nimm besser deferred. Siehe auch: Installationsphasen und Einstellungen zur In-Script-Ausführung für benutzerdefinierte Aktionen in Windows Installer http://www.installsi...00108/index.htm

Erstelle eine zweite Custom Action mit den anderen Parameter.

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 29 September 2009 - 07:54

Danke, habe jetzt commit geändert in "Verzögerte Ausführung".
Habe jetzt eine zweite Custom Action gemacht wo ich einfach nur die Befehlszeile statt "Register" auf "Unregister" geändert habe.
Erste Aktion heißt "Register" und die zweite "Unregister".

Bei der Aktion "Register" habe ich bei "Ausführungssequenz installieren" "Nach Unregister" ausgewählt. (Vorschlag vom Build)

Bei der zweiten Aktion "Unregister" habe ich bei Ausführungssequenz installieren" Nach InstallFiles" ausgewählt.

Damit bekomme folgendes Ergebnis: Bei der Installation wird erst die Aktion "Unregister" und dann die Aktion "Register" aufgerufen. Es soll aber bei der Installtion nur die Aktion "Register" und bei der Deinstallation die Aktion "Unregister" aufgerufen werden. Was muss ich denn machen damit das so funktioniert?
Außerdem sollen die beiden Aktionen nur ausgeführt werden wenn eine bestimmtes Feature zur Installation ausgewählt wurde. Ansonsten wird die exe nicht gefunden.

Liebe Grüße
Sunflower84

Edited by Sunflower84, 29 September 2009 - 09:45.


Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 29 September 2009 - 13:27

Ich habe das jetzt so gelöst, das ich einfach die Aktionen zu den entsprechenden Sequenzen zugeordnet habe. Jetzt stimmt auch die Reihenfolge. Wie frage ich denn noch ab das die benutzerdefinierten Aktionen nur ausgeführt werden wenn eine bestimmte Komponente zur Installation ausgewählt wurde?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 29 September 2009 - 17:04

Bedingungen sind im Hilfe-Kapitel "Conditional Expressions" beschrieben. In deinem Fall:

&FeatureName=3
ist True wenn das Feature installiert wird (also nicht, wenn es nicht ausgewählt war, nicht bei Deinstalaltion und auch nicht, wenn gerade eine Ändern-Instalaltion läuft und das Feature bereits installiert ist)

&FeatureName=2
ist True wenn das Feature de-installiert wird (also nur, wenn es vorher installiert war und jetzt entfernt wird)

Diese Beispiele sind etwas vereinfacht, denn sie lassen "advertise" und "rn from source" außer Betracht. Wenn du diese Optionen unterstützt, werden die Bedingungen etwas komplizierter, aber die Werte dazu findest du in o.g. Hilfe-Kapitel.



Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 01 October 2009 - 15:42

Vielen Dank Stefan. Das hatte ich auch schon fast so :-) Hatte aber bei beiden Bedingungen (Registrierung und Deregistrierung) folgendes stehen:
&FeatureName=3

Wenn ich bei der Deregistrierung eine 2 statt 3 schreibe funtkioniert es.

Vielen Dank.

Liebe Grüße
Sunflower84

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 13 January 2010 - 12:56

Ich habe gerade fest gestellt das es nur unter XP funktioniert. Unter Vista funktioniert es nicht. Auch wenn ich es manuell mit cmd... usw. versuche sagt er mir das ich nciht die Rechte habe. Die exe manuell zu registrieren geht unter Vista nur, wenn ich unter Zubehör rechts klick auf Command Prompt und als Administrator ausführen aufrufe. Wie realisiere ich das denn in meinem MSI? Gibt das da eine Einstellung die ich noch machen muss?

Liebe Grüße
Sunflower84

Sunflower84

Sunflower84
  • Full Members
  • 121 posts

Posted 13 January 2010 - 15:19

Hab es gelöst und zwar die Custom Action beim Ausführen auf "dereferred in system context" (Verzögert im Systemcontext) geändert.