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

Multiple Instance Installs


6 replies to this topic

vschober@gesytec.de

vschober@gesytec.de
  • Full Members
  • 19 posts

Posted 29 November 2012 - 16:58

Hallo,

ich möchte einen Setup mehrfach in unterschiedliche Verzeichnisse installieren. Wenn ich es richtig verstehe, muss ich dazu den ProductCode anpassen.

Am liebsten würde ich es per InstallScript machen bzw. den neuen ProductCode zusammen mit INSTALLDIR auf der Kommandozeile angeben.
Im InstallScript habe ich eine Funktion MyOnBegin() als <First Action> eingetragen und rufe dort
CODE
MsiSetProperty(hMSI, "ProductCode", svValue);
auf, doch der ProductCode scheint nicht benutzt zu werden.

Dann habe ich ein Transform-Projekt zu meinem MSI erstellt, wo ich nur den ProductCode geändert habe, aber es wird immer der originale ProductCode verwendet.
QUOTE
EasylonDriver64.msi TRANSFORM="Transform1.Mst" INSTALLDIR="C:\Easylon\Install\LonUsb"

Und wenn ich zusätzlich MSINEWINSTANCE angebe,
QUOTE
EasylonDriver64.msi TRANSFORM="Transform1.Mst" MSINEWINSTANCE=1 INSTALLDIR="C:\Easylon\Install\LonUsb"
so gibt es vom Windows Installer nur eine Fehlermeldung "Invalid command line argument. ..."

Ich habe auch eine Anleitung gefunden: Multiple Instance MSI's and InstallShield 12, komme damit aber gar nicht klar.

Wie kann ich mit möglichst wenig Aufwand ein MSI mehrfach in verschiedenen Verzeichnissen installieren?

Edited by vschober@gesytec.de, 04 December 2012 - 10:03.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 01 December 2012 - 14:49

Die Kommandozeile sieht auch nicht gut aus: Du setzt zweimal das TRANSFORMS Property, auch das INSTALLDIR Property. Und das macht für mich überhaupt keinen Sinn:
INSTALLDIR="C:\Easylon\Install\LonUsb"=1


vschober@gesytec.de

vschober@gesytec.de
  • Full Members
  • 19 posts

Posted 03 December 2012 - 10:00

Ich habe die Kommandozeile mit MSINEWINSTANCE oben korrigiert. Ich hatte sie nur falsch ins Forum kopiert.
Die Fehlermeldung "Invalid command line argument. ..." besteht mit der korrigierten Kommandozeile aber weiterhin.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 December 2012 - 20:48

Dann ist offenbar immer noch ein Fehler in der Kommandozeile. Poste sie doch mal.

vschober@gesytec.de

vschober@gesytec.de
  • Full Members
  • 19 posts

Posted 04 December 2012 - 11:51

Hier noch mal die Kommandozeile
QUOTE
EasylonDriver64.msi TRANSFORM=Transform1.Mst MSINEWINSTANCE=1 INSTALLDIR="C:\Easylon\Install\LonUsb"

welche die Fehlermeldung "Invalid command line argument. ..." bringt.

Die nächste Frage wäre dann, wie mache ich daraus dann "Embedded Transforms", welche dann folgendermaßen aufgerufen werden müssten:
QUOTE
EasylonDriver64.msi TRANSFORM=:Transform1.Mst MSINEWINSTANCE=1 INSTALLDIR="C:\Easylon\Install\LonUsb"



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 04 December 2012 - 13:49

Es muss heißen TRANSFORMS, d.h. bei dir fehlt ein S. Ich gehe davon aus, dass deine Kommandozeile mit msiexec.exe /i beginnt und du ggf. den vollen Pfad zur msi-Datei angibst, falls erforderlich in Anführungszeichen, als etwa so:
CODE
msiexec.exe /i "C:\der Pfad\EasylonDriver64.msi" TRANSFORMS=Transform1.Mst MSINEWINSTANCE=1 INSTALLDIR="C:\Easylon\Install\LonUsb"


vschober@gesytec.de

vschober@gesytec.de
  • Full Members
  • 19 posts

Posted 07 December 2012 - 15:26

Danke, das "S" bei TRANSFORMS hatte ich übersehen.

Inzwischen habe ich auch herausgefunden, wie ich mit InstallShield einfach Multiple Instances anlegen kann:
Einfach unter Releases den Tab "Multiple Instances" suchen und dort für jede Instance einen neuen "ProductCode" anlegen.

Installiert wird das MSI dann mit
QUOTE
MsiExec.exe /quiet /I EasylonDriver64.msi TRANSFORMS=:InstanceId2.mst MSINEWINSTANCE=1 INSTALLDIR="c:\Easylon\Install\LvxLvu\"

wobei ich hier zusätzlich das INSTALLDIR übergebe.
Deinstallieren lässt sich das MSI mit
QUOTE
MsiExec.exe /quiet /X EasylonDriver64.msi TRANSFORMS=:InstanceId2.mst

Die Zahl hinter InstanceId gibt dann die jeweilige Instance an.

Attached Images

  • MultipleInstances.jpg