Ich verwende seit dem CTP die 64-Bit-Version von Windows 7 und habe einige Probleme mit Anwendungen, die im C:\Program Files (x86)
Ordner installiert werden . Was ist der Zweck von 2 separaten Programmdateiverzeichnissen?
Jedes Programm, das ich installiert habe, wurde in den C:\Program Files (x86)
Ordner verschoben. Es scheint keine Rolle zu spielen, ob die App 32 oder 64 Bit ist. Warum werden keine 64-Bit-Apps platziert C:\Program Files
?
Gibt es eine Möglichkeit, die Standardeinstellung zu ändern C:\Program Files
? Würde es irgendetwas durcheinander bringen, wenn ich einfach alles hineinstecke C:\Program Files
?
Wenn ein separater Ordner für 64-Bit-Apps tatsächlich von Vorteil ist, scheint es sinnvoller gewesen zu sein, ihn C:\Program Files
für x86-Apps zu verwenden und einen neuen C:\Program Files (x64)
Ordner für die neuen 64-Bit-Apps zu erstellen . Dies würde dazu beitragen, die Abwärtskompatibilität aufrechtzuerhalten. Ich arbeite als Softwareentwickler und einige meiner Projekte enthalten Pfadverweise auf Bibliotheken unter C:\Program Files
. Jetzt sind diese Verweise auf dem Windows 7-Computer, auf dem sie abgelegt wurden, fehlerhaft C:\Program Files (x86)
. Ich habe sogar versucht, den Zielspeicherort im Installationsprogramm zu ändern C:\Program Files
, aber das wurde ignoriert und die App ging C:\Program Files (x86)
trotzdem hinein.
Dies ist sehr frustrierend, da ich Quellcode zwischen 32- und 64-Bit-Computern freigeben muss und nicht mit einer Konfigurationsdatei herumspielen möchte, die den Pfad zu diesen Bibliotheken auf verschiedenen Computern unterschiedlich festlegt.
Bearbeiten in Bezug auf Umgebungsvariablen: (. Mit nur Englisch Werte der Variablen der Einfachheit halber Standard) Auf einem 64-Bit - Maschine %ProgramFiles%
wird , C:\Program Files
während die Marke neue Variable %ProgramFiles(x86)%
sein wird C:\Program Files (x86)
. Wenn Sie also ein 32-Bit-Programm haben, das den Ordnerpfad finden muss, unter dem es installiert werden soll, muss es überprüfen, ob es in einer 32-Bit- oder einer 64-Bit-Version von Windows ausgeführt wird um zu wissen, welche Umgebungsvariable verwendet werden soll. Alle 32-Bit-Apps, die ohne diese Überlegung geschrieben wurden, müssen aktualisiert werden, damit sie auf einem 64-Bit-Computer ordnungsgemäß funktionieren. Selbst bei Verwendung von Umgebungsvariablen ist die Abwärtskompatibilität beeinträchtigt.
Auch %ProgramFiles(x86)%
existiert nicht auf 32-Bit-Versionen von Windows. Wenn dies der Fall wäre, könnten 32-Bit-Apps diese Umgebungsvariable einfach immer verwenden und benötigen keine bedingte Logik, die darauf basiert, auf welchem Betriebssystem sie ausgeführt werden.
quelle
%ProgramFiles%
Umgebungsvariablen dies gelöst hätte. Ich bin mir nicht sicher, wie ich mit dem x86 / 64-Bit-Unterschied umgehen soll.Antworten:
Der Grund dafür ist einfach, dass viele ältere Installer entweder die neue Dateistruktur nicht verstehen und alles in das Standardverzeichnis der Programmdateien einfügen, oder Sie sich ein intelligentes Programm ansehen, das einige 32-Bit-Komponenten enthält, die dort kopiert werden.
Am besten laden Sie ein neues Programm herunter - beispielsweise x64 Winrar - und sehen, wo es installiert wird, um ein Problem mit Ihrem Computer auszuschließen.
Was das Durcheinander betrifft - es kann, aber es hängt wirklich vom Programm ab, es gibt keine Antwort für alle ... einige kleinere, kompakte Programme mit nur wenigen Dateien sollten kein Problem haben, wenn Sie über Office sprechen Bei Adobe oder einer anderen "Suite" oder einem großen Programm wird dies höchstwahrscheinlich fehlschlagen, da viele gemeinsam genutzte Komponenten architekturübergreifend sind.
quelle
Wenn Sie etwas anderes als
%ProgramFiles%
(oderCSIDL_PROGRAM_FILES
oder unter .NETEnvironment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
) verwenden, sind Sie ohnehin in Schwierigkeiten, da bei benutzerdefinierten Installationen Programme unter anderen Volumes installiert werden können (z. B. D) und bei internationalen Installationen häufig standardmäßig andere Ordner vorhanden sind.C:\Archivos de Programa
,C:\Programmes
,C:\Programme
,C:\Program
etc.
quelle
%ProgramFiles%
genau das Problem durch die Verwendung verursacht wird.Bitte beachten Sie, dass unter 64-Bit-Versionen von Windows 7 (dies gilt möglicherweise auch für andere neuere Betriebssystemversionen, ich kann dies jedoch nur für Win 7 64-Bit bestätigen) ein Unterschied zwischen dem übergeordneten Speicherort Ihrer% ProgramFiles% besteht. im Explorer und unter DOS.
Unter Windows 7 ist der tatsächliche physische Ordner von% ProgramFiles% (und der zugehörigen Umgebungsvariablen% ProgramFiles (x86)%) gemäß der englischen Version festgelegt . dh "C: \ Programme" und "C: \ Programme (x86)", wird jedoch im Exploer angezeigt, der entsprechend lokalisiert ist .
Um ein konkretes Beispiel zu geben; Wenn Sie bei einer schwedischen 64-Bit-Installation von Windows 7 den Explorer öffnen und in das Systemlaufwerk schauen (normalerweise C :), werden die Ordner " Programm " und " Programm (x86) " angezeigt. Wenn Sie% ProgramFiles% in die Adressleiste eingeben, gelangen Sie zu "C: \ Program".
Wenn Sie jedoch ein DOS-Feld öffnen und SET eingeben, sehen Sie, dass der tatsächliche Wert von% ProgramFiles% "C: \ Programme" ist und nicht der Ordner-Exploer "C: \ Program". Weitere Erkundungen mit CD und DIR, die Sie physisch sehen können, sind "C: \ Programme".
Die Moral ist, wenn Sie die Umgebungsvariablen oder das Programm über die APIs verwenden, funktioniert immer noch alles, aber beachten Sie diese subtile Änderung, wenn Sie das Dateisystem erkunden!
quelle