Umgebungsvariable %ProgramFiles% bei 64Bit-Rechnern

Antworten
Bela
Beiträge: 78
Registriert: 04. Jan 2005, 11:15
Kontaktdaten:

Umgebungsvariable %ProgramFiles% bei 64Bit-Rechnern

Beitrag von Bela » 04. Sep 2012, 14:20

Hallo,

wir haben V12 R2 im Einsatz. Die Empirum-Setup.exe ist ein 32Bit-Prozess. Auf einem 64Bit-Rechner liefert mir die Umgebungsvariable %ProgramFiles% in der Setup.inf immer den Wert "C:\Program Files (x86)" zurück. Dafür gibt es auf 64Bit-Rechnern eigentlich die Variable %ProgramFiles(x86)%. Mit welcher Variable bekomme in der Setup.inf das Verzeichnis "C:\Program Files" bei 64Bit-Rechnern zurückgeliefert?

Bisher habe ich in solchen Fällen den Pfad immer "hart" vorgegeben, z.B. beim Zielpfad-Parameter einer 64Bit-Programminstallationsroutine, wenn das Programm eben nach C:\Program Files\Programm installiert werden soll. Nehme ich die Umgebungsvariable, wird das Programm falsch nach "C:\Program Files (x86)" installiert.

Was macht Ihr in so einem Fall?

Gruß
Béla

Benutzeravatar
thahn
Beiträge: 487
Registriert: 03. Jan 2007, 09:03
Wohnort: KR - NRW
Kontaktdaten:

Re: Umgebungsvariable %ProgramFiles% bei 64Bit-Rechnern

Beitrag von thahn » 04. Sep 2012, 14:59

Hi,

sofern in der Setup.inf auf Platform=x86 geflaggt

gibt es eine Variable -> %ProgramW6432% -> den 64Bit Pfad wieder

weiss aber nicht ob die schon in der setup.exe von V12VR2 enthalten ist.

kannst du einfach testen, PackageEditor single Step debuggen und dann unten schauen welche Variablen nach wo aufgelöst werden.

cYa
Thomas Hahn
Technical Account Manager

Matrix42 AG

Email: thomas.hahn[at]matrix42.com
http://www.matrix42.de
Skype: thahn42
ICQ: IO25IGO8

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of matrix42 AG.

Bela
Beiträge: 78
Registriert: 04. Jan 2005, 11:15
Kontaktdaten:

Re: Umgebungsvariable %ProgramFiles% bei 64Bit-Rechnern

Beitrag von Bela » 04. Sep 2012, 15:35

Hallo cYa,

danke, Du hast recht, auf 64Bit-Systemen funktioniert die Variable %ProgramW6432% tatsächlich. Da habe ich wohl eine veraltete Doku. Sie funktioniert auch, wenn in der Setup.inf der Eintrag "Platform=xxx" komplett fehlt.

Was bewirkt dieser Eintrag eigentlich genau?

Ich habe festgestellt, dass z.B. wenn Platform=* gesetzt ist, zur Laufzeit der Setup.exe unter %temp% eine Datei namens Setup64.exe erzeugt wird. Warum? Wofür wird diese verwendet? Kann ich nur dann z.B. auf den 64Bit Zweig der Registry unter HKLM\Software zugreifen? Meines Wissens nach konnte ich bisher in der Setup.inf immer nur auf HKLM\Software\Wow6432Node zugreifen bzw. wurde automatisch dorthin gelenkt.

Gruß
Bela

Benutzeravatar
thahn
Beiträge: 487
Registriert: 03. Jan 2007, 09:03
Wohnort: KR - NRW
Kontaktdaten:

Re: Umgebungsvariable %ProgramFiles% bei 64Bit-Rechnern

Beitrag von thahn » 04. Sep 2012, 16:01

Hi,

also das Platform Flag definiert, ob es es sich um ein 32Bit Applikation handelt oder nicht.
Das heisst, damit werden interne Empirumvariablen direkt richtig verknüpft.

ein Beispiel:

bei Platform=x86

auf einen 32Bit
%ProgramFilesDir% = C:\Program Files

auf einen 64Bit
%ProgramFilesDir% = C:\Program Files (X86)\

hier aus der Hilfe

Platform=[*|x86|x86os|x64]

Ist der Wert *, wird das Paket auf allen Plattformen ausgeführt. Ist der Wert leer, oder der Eintrag nicht vorhanden, wird aus Gründen der Abwärtskompatibilität der Wert x86 angenommen. Ist der Wert x86, wird dieses Paket auf allen 32-bit Betriebssystemen und auf 64-bit Betriebssystemen in der 32-bit Emulation ausgeführt. Ist der Wert x86os, wird dieses Paket ausschließlich auf 32-bit Betriebssystemen ausgeführt. Ist der Wert x64, wird dieses Paket ausschließlich auf 64-bit Betriebssystemen ausgeführt.

http://helpfiles.matrix42-web.de/v14_DE ... ion_DE.htm
Thomas Hahn
Technical Account Manager

Matrix42 AG

Email: thomas.hahn[at]matrix42.com
http://www.matrix42.de
Skype: thahn42
ICQ: IO25IGO8

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of matrix42 AG.

Bela
Beiträge: 78
Registriert: 04. Jan 2005, 11:15
Kontaktdaten:

Re: Umgebungsvariable %ProgramFiles% bei 64Bit-Rechnern

Beitrag von Bela » 04. Sep 2012, 16:16

Super, vielen Dank!.

Das Wissen darüber hätte mir einige Verrenkungen in ein paar Paketen erspart... Wir schreiben Pakete immer so, dass es für alle Platformen immer nur ein Paket gibt. Platform=* ist für uns natürlich jetzt ideal, da man damit auf alle Teile der Registry lesend und schreibend zugreifen kann: HKLM\Software (der 64Bit-Zweig) und HKLM\Software\Wow6432Node (der 32Bit-Zweig). Und da jetzt auch %ProgramFiles% auf 64Bit-Systemen wie erwartet funktioniert , benötigt man die Empirum-Variable %ProgramW6432% gar nicht. Den 32Bit-Pfad bekommt man dann mit %ProgramFiles(x86)%.

Gruß
Bela

Antworten

Zurück zu „Paketierung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 22 Gäste