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

Setup für x86 und x64


4 replies to this topic

AGoehlich

AGoehlich
  • Full Members
  • 10 posts

Posted 16 June 2014 - 12:26

Hallo,

 

ich soll ein Setup für ein Produkt (ein Addin für Microsoft Dynamics NAV) erstellen, welches aus einem Client- und einem Serverteil besteht. Der Clientteil kann auf x86 und x64 Systemen laufen, der Serverteil ausschließlich auf x64 Systemen.

 

Es soll nur ein einziges Setup (Setup.exe) geben, welches,

  1. wenn man es auf einem x86 System startet, nur den Clientteil installiert.
  2. wenn man es auf einem x64 System startet, eine Auswahl anzeigt, ob man nur den Clientteil, nur den Serverteil, oder beides installieren möchte, und dann gemäß der getroffenen Auswahl die Installation durchführt.

Punkt 2. habe ich realisiert; funktioniert prima.

 

Die Zielordner werden per System Search aus der Registry ermittelt und liegen unter folgenden Wurzelpfaden:

 

x64 System:

  • Clientteil: C:\Programme(x86)\...
  • Serverteil: C:\Programme\...

 

x86 System:

  • Clientteil: C:\Programme\...
  • Serverteil: --

 

Auf einem x64 System muß ich also jeweils einen Key aus dem x86 und x64 Teil der Registry erfragen.

 

Je nach dem aber, was ich als Template Summary angebe, passiert nun folgendes:

 

  • Intel;0 oder ;0: Das Setup kann auf beiden Systemen gestartet werden, aber auf einem x64 System findet der System Search für den Serverteil nichts; die entsprechende Variable bleibt leer, obwohl im System Search Wizard das Häkchen bei Search the 64-bit portion of the Registry gesetzt ist.
  • x64;0: Auf einem x64 System funktioniert alles prima, aber auf einem x86 System kann das Setup natürlich nicht gestartet werden.

 

Habt Ihr einen Tip, was ich falsch mache, oder geht das generell nicht?

 

Vielen Dank für Eure Hilfe!

Alfred



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 17 June 2014 - 14:28

Ein einzelnes MSI kann nur entweder x86 oderc x64 sein. Um beide Fälle abzudecken brauchst du zwei MSIs (die du aber aus dem gleichen Projekt erzeugen kannst). Dann kannst du ein Rahmen-Setup erstellen, das die Bittigkeit erkennt und das passende MSI startet. Dieses Rahmensetup kann ein Suite-Projekt oder auch ein InstallScript (oder etwas ganz selbst gestricktes) sein, aber kein MSI.



AGoehlich

AGoehlich
  • Full Members
  • 10 posts

Posted 24 June 2014 - 14:13

Hallo Stefan,

 

danke für den Tip, das werde ich mal ausprobieren.

 

Grüße

Alfred

 

PS: Nachträglich herzlichen Glückwunsch zum Geburtstag... :)



AGoehlich

AGoehlich
  • Full Members
  • 10 posts

Posted 28 July 2014 - 15:27

Hallo Stefan,

 

die erste Hürde ist genommen: Suite Projekt erzeugt mit 2 Features, die die Conditions Architecture:x86 bzw. x64 haben. In Abhängigkeit davon kann ich entweder das eine oder das andere msi starten.

 

Aber: Die msi's laufen silent, obwohl ich für das Package bei Operation -> Install -> MSI Command Line /qf angegeben habe.

 

/qf sollte doch das komplette Benutzerinterface anzeigen, oder? Wenn ich das msi direkt über Rechtsklick -> Installieren starte, so funktioniert es.

 

Was mach ich hier falsch?

 

Zu dem msi gibt es noch 1031.mst und 1033.mst. Wie steuere ich die beiden Sprachen an? Die Suite hat ja einen Sprachauswahldialog und die gewählte Sprache wird in ISSelectedLanguage gespeichert.

 

Vielen Dank für Deine Hilfe

Alfred



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 July 2014 - 12:59

Ja, msi Pakete werden immer silent gestartet, das ist nicht änderbar:

 

Note that an Advanced UI or Suite/Advanced UI installation always launches .msi packages silently. Therefore, it is not necessary to pass a command-line parameter that hides the user interface of the .msi package.

und:

 

If you are configuring the Install and Remove operations for an .msi package, the only type of command-line parameters that you should enter are Windows Installer properties. An Advanced UI or Suite/Advanced UI installation uses MsiInstallProduct to launch an .msi package in install or remove mode, and this function accepts only Windows Installer properties as command lines.

Anstelle der msi könnte man evtl. die setup.exe einbinden, da sollte es funktionieren.