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

ein *.MSI für 32bit und 64bit Installation


6 replies to this topic

vope

vope
  • Full Members
  • 3 posts

Posted 11 February 2009 - 15:56

Hallo zusammen,

ist es mit InstallShield 12.0 möglich ein gemeinsames MSI-Package für 32bit und 64bit Installation zu erstellen.


Hintergrund:

Wir haben eine Clientsoftware die wir sowohl in 32bit als auch 64bit Variante ausbringen möchten, am liebsten natürlich in nur einem Package.

Wie kann ich das [INSTALLDIR] in Abhängigkeit der vorgefundenen Version entweder auf ProgramFilesFolder oder ProgramFiles64Folder setzen lassen?

Die OS Version kann ich je leicht mit VersionNT und VersionNT64 ermitteln, und dann jeweils unterschiedliche Features für 32bit und 64bit anfahren, doch wie stelle ich dann das [INSTALLDIR] um?

Vielen Dank für eure Mithilfe

Gruß

Vope

mkkk

mkkk
  • Full Members
  • 63 posts

Posted 11 February 2009 - 16:55

Nein, ist nicht möglich.

Eine 32-bit MSI wird mit einer 32-bit Installer-Engine ausgeführt.
Eine 64-bit MSI wird mit einer 64-bit Installer-Engine ausgeführt.

Ich habe auch versucht beide Plattformen in einem Setup unterzubringen.
Spätestens mit den Komponenten gibt es dann Probleme.

Trenne lieber gleich - erspart viel Ärger!


vope

vope
  • Full Members
  • 3 posts

Posted 11 February 2009 - 17:35

hab gerde nochmal versucht es doch hinzubekommen wink.gif

Könnte ich nicht mit einer "Custom Action" MSI-TYP 35 dem

Verzeichnisnamen: INSTALLDIR einen neuen Verzeichniswert [ProgramFiles64Folder] zuweisen lassen, und das alles in Abhängigkeit einer Bedingung VersionNT64 >500?

Irgendwie funktioniert das aber nicht!"

Meldung:

Target Path not created. No path exists for entry INSTALLDIR in Directory Table.

Was hab ich falsch gemacht?

Edited by vope, 11 February 2009 - 17:49.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 12 February 2009 - 16:17

Hilfethema "Using 64-Bit Windows Installer Packages" beschreibt, was man machen muss um ein 64-Bit Installer-Paket zu erstellen. Dort steht u.a.:
QUOTE
Indicate in the Template Summary property of the package summary information stream that this is a 64-bit package. Enter "Intel64" into the platform field of the Template Summary property if the package is to be run on an Intel64 processor. Enter "x64" if the package is to be run on a 64-bit extended processor. A package cannot be marked as supporting both Intel64 and x64 platforms, a Template Summary property value of "Intel64,x64" is invalid. A package cannot be marked as supporting both 32-bit and 64-bit platforms, the Template Summary property values of "Intel,x64" or "Intel,Intel64" are invalid.


Thomas Hübner

Thomas Hübner
  • Full Members
  • 25 posts

Posted 02 July 2009 - 09:57

Ich versuche gerade eine 32- und 64-bit-Installation in einem Projekt unter zu bringen.

Für jede Komponente, die sowohl in 32- als auch 64-bit vorliegt habe ich ein extra Feature angelegt und das Release-Flag auf entweder 32bit oder 64bit gesetzt. Dann habe ich 2 Release-Konfigurationen angelegt und auch das entsprechende Release-Flag gesetzt. Bei der 64-bit Konfiguration habe ich Template Summary auf x64 gesetzt.

Der Build hat auch einwandfrei funktioniert. Jetzt möchte ich, dass die 64-Bit Komponenten unter [ProgramFIles64Folder] abgelegt werden bzw. die gesamte Installation dort abgelegt wird.

Ist so etwas möglich? Oder sollte man doch besser 2 Projekt-Dateien haben?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 July 2009 - 15:09

Evtl. brauchst du eine Custom Action die INSTALLDIR auf ein Verzeichnis unter ProgramFiles64Folder setzt, oder du machst dir ein INSTALLDIR64 für die 64-Bit-Komponenten.

Juergen Wagener

Juergen Wagener
  • Full Members
  • 32 posts

Posted 04 July 2012 - 13:13

Im Flexera-Forum stand u.a. diese Lösung:

...I have found a solution that suites my needs. In the Files and Folders view, instead of putting all of my files under ProgramFilesFolder, I created my own folder called PROGRAMFILESFOLDER. Then I created 2 set Directory custom actions SetPROGRAMFILESFOLDERx86 and SetPROGRAMFILESFOLDERx64. For SetPROGRAMFILESFOLDERx86 I used NOT VersionNT64 for the condition and for SetPROGRAMFILESFOLDERx64 I used VersionNT64 for the condition, and put them after CostFinalize. In each I set PROGRAMFILESFOLDER to either [ProgramFilesFolder] or [ProgramFiles64Folder] depending on the custom action. I have them in both UI and execute sequence...

Das funktioniert bei mir leider nur, wenn ich in den CA als Property-Value direkte Pfade wie z.B. "c:\abc" und "c:\def" eingebe. Je nach Betriebssystem wird dann eines der beiden als Root-Directory genommen. Setze ich allerdings [ProgramFilesFolder] bzw. [ProgramFiles64Folder] dort ein, wird immer in "c:\Program Files (x86)" installiert. Das tritt sogar dann auf, wenn ich testweise in beiden CA [ProgramFiles64Folder] einsetze. Es wird nie "c:\Program Files" genommen.

Tests mit CA des Typs 51 (mit Ausführung vor CostFinalize) brachten dasselbe Ergebnis. Wäre ansonsten eine schöne Lösung für das 32/64bit-Problem.

Edited by Juergen Wagener, 04 July 2012 - 13:21.