Wie kann ich feststellen, ob ich auf x64 oder x86 .NET bin?
Frage
Ich möchte meine Benutzer korrekte Links zu einer aktualisierten Version meines Programms bieten, basierend auf welcher Plattform sie laufen auf, so muss ich wissen, ob ich zur Zeit auf einem x86-Betriebssystem oder ein x64 OS renne.
Das Beste, was ich gefunden habe, ist Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")
, aber ich würde denken, dass eine eingebaute in der Einrichtung hierfür wäre?
Lösung
Environment.Is64BitOperatingSystem und Environment.Is64BitProcess werden eingeführt in .NET 4 für 2 .NET müssen Sie einige der anderen Antworten auszuprobieren.
Andere Tipps
Anruf IsWow64Process
um herauszufinden, ob Ihr 32-Bit-Prozess wird in WOW64 auf einem 64-Bit-Betriebssystem ausgeführt wird. Sie können GetNativeSystemInfo
rufen um genau herauszufinden, was es ist:. Die wProcessorArchitecture member
von SYSTEM_INFO
für 32-Bit-PROCESSOR_ARCHITECTURE_INTEL
werden, PROCESSOR_ARCHITECTURE_AMD64
für x64 und PROCESSOR_ARCHITECTURE_IA64
für Intels Itanium
Überprüfen Sie die Größe von IntPtr mit Marshal.SizeOf. 32 Bit = 4 Bytes, 64-Bit = 8 Bytes.
Edit:. Ich bin nicht sicher, ob dies ist, was Sie suchen nach der Frage erneut zu lesen
Sie können eine Menge über Umgebungsvariablen bestimmen, wie in C # - wie Program Files (x86) unter Windows 64-Bit- [Und das geschah zu mir paßt besser als Mikes Antwort, die ich +1 gegeben bekommen, wie ich bei der Suche nach der interessiert sein passiere Program Files Verzeichnisname]
Überprüfen Sie nur IntPtr.Size
. Sie müssen Zielplattform als AnyCPU haben.