.NET을 사용하여 x64 또는 x86을 사용하고 있는지 어떻게 알 수 있나요?

StackOverflow https://stackoverflow.com/questions/90855

  •  01-07-2019
  •  | 
  •  

문제

사용자가 실행 중인 플랫폼에 따라 내 프로그램의 업그레이드 버전에 대한 올바른 링크를 제공하고 싶기 때문에 현재 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로 대상 플랫폼이 필요합니다.

여기에서

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top