.NET을 사용하여 x64 또는 x86을 사용하고 있는지 어떻게 알 수 있나요?
문제
사용자가 실행 중인 플랫폼에 따라 내 프로그램의 업그레이드 버전에 대한 올바른 링크를 제공하고 싶기 때문에 현재 x86 OS에서 실행 중인지 x64 OS에서 실행 중인지 알아야 합니다.
내가 찾은 최고는 다음을 사용하는 것입니다. Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")
, 하지만 이를 위한 내장 시설이 있을 것이라고 생각합니까?
해결책
Environment.Is64BitOperatingSystem 그리고 환경.Is64BitProcess .NET 4에 도입되었습니다..NET 2의 경우 다른 답변을 시험해 봐야 합니다.
다른 팁
부르다 IsWow64Process
32비트 프로세스가 64비트 운영 체제의 WOW64에서 실행되고 있는지 확인하세요.전화해도됩니다 GetNativeSystemInfo
그것이 무엇인지 정확히 알아 보려면 다음을 수행하십시오.그만큼 wProcessorArchitecture member
~의 SYSTEM_INFO
될거야 PROCESSOR_ARCHITECTURE_INTEL
32비트의 경우, PROCESSOR_ARCHITECTURE_AMD64
x64 및 PROCESSOR_ARCHITECTURE_IA64
인텔의 아이태니엄용.
Marshal.SizeOf를 사용하여 IntPtr의 크기를 확인합니다.32비트 = 4바이트, 64비트 = 8바이트입니다.
편집하다:질문을 다시 읽은 후에 이것이 귀하가 찾고 있는 것이 무엇인지 잘 모르겠습니다.
에서 사용된 환경 변수를 통해 많은 것을 결정할 수 있습니다. C# - Windows 64비트에서 프로그램 파일(x86)을 얻는 방법 [그리고 이것은 Program Files 디렉터리 이름을 찾는 데 관심이 있어서 +1한 Mike의 답변보다 나에게 더 적합했습니다.]
확인해보세요 IntPtr.Size
.AnyCPU로 대상 플랫폼이 필요합니다.