문제

여기에는 지원되는 모든 프로세서 아키텍처가 열거되어 있습니다. http://msdn.microsoft.com/en-us/library/system.reflection.processorarchitecture.aspx

실행중인 환경에 해당하는 것을 결정할 수있는 방법이 있습니까? system.reflection.assembly.getexecutingAssembly (). ProcessorArchitecture는 MSIL을 반환합니다.

편집 : Bojan Resnik은 답을 게시하고 삭제했습니다. 나는 내가 얻은 부분적인 흔적에서 약간의 설명이 필요하다는 것을 알 수있다.

어셈블리는 여러 아키텍처에서 실행해야하며 실행 프로세스가 수용하는 어셈블리 지침에 따라 다른 작업을 수행해야합니다. 기본적으로, 기본 DLL의 버전을 선택해야합니다. 각 아키텍처마다 하나가 있습니다.

도움이 되었습니까?

해결책

p/호출 getsysteminfo .NET에서 사소하고 WMI보다 훨씬 가볍습니다. 또한 프로세스에서 볼 수 있듯이 아키텍처를 반환하므로 x64 컴퓨터에서 와우 프로세스는 x86을 보이고 기본 프로세스는 x64를 볼 수 있습니다.

다른 팁

다음은 시도해 볼 수있는 몇 가지 WMI 설정이 있습니다. 현재 64 비트 시스템이 없지만 확인하기가 쉽습니다. 소스 코드는 다음과 같습니다. 결국 통화 조합을 사용해야 할 수도 있습니다 (예 : WOW를 찾기 위해 하나, 다른 하나는 네이티브 32 대 64 등을 찾습니다).

또한 확인하십시오 http://social.msdn.microsoft.com/forums/en-us/windowssdk/thread/b1cfef99-5247-47c5-93d4-31eb6849df48 더 많은 토론을 위해.

using System;
using System.Management;
class Program
{
    static void Main(string[] args)
    {
        foreach (ManagementBaseObject o in new ManagementClass("Win32_OperatingSystem").GetInstances())
        {
            Console.WriteLine("Win32_OperatingSystem.OSArchitecture = " + o.Properties["OSArchitecture"].Value);
            break;
        }
        foreach (ManagementBaseObject o in new ManagementClass("Win32_ComputerSystem").GetInstances())
        {
            Console.WriteLine("Win32_ComputerSystem.SystemType = " + o.Properties["SystemType"].Value);
            break;
        }
        Console.ReadKey();
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top