IT story

Visual Studio에서 "32 비트 선호"설정의 목적은 무엇이며 실제로 어떻게 작동합니까?

hot-time 2020. 5. 13. 08:05
반응형

Visual Studio에서 "32 비트 선호"설정의 목적은 무엇이며 실제로 어떻게 작동합니까?


여기에 이미지 설명을 입력하십시오

컴파일러가 필요할 때 64 비트 용으로 컴파일하는 방법을 자동으로 알 수있는 방법이 확실하지 않습니다. 자신있게 32 비트를 대상으로 할 수있는시기를 어떻게 알 수 있습니까?

컴파일러가 컴파일 할 때 어떤 아키텍처를 대상으로하는지 아는 방법이 궁금합니다. 코드를 분석하고 찾은 내용에 따라 결정을 내립니까?


Microsoft는 AnyCPU가 실제로 .NET 4.5 및 Visual Studio 11에서 의미 하는 블로그 항목을 가지고 있습니다 .

.NET 4.5 및 Visual Studio 11에서 치즈가 이동되었습니다. 대부분의 .NET 프로젝트의 기본값은 다시 AnyCPU이지만 AnyCPU에는 두 가지 이상의 의미가 있습니다. AnyCPU의 추가 하위 유형 인“모든 CPU 32 비트 기본 설정”이 새로운 기본값입니다 (전체적으로 / platform C # 컴파일러 스위치에는 5 가지 옵션이 있습니다 : x86, Itanium, x64, anycpu 및 anycpu32bitpreferred). ). AnyCPU의 "32 비트 선호"플레이버를 사용할 때의 의미는 다음과 같습니다.

  • 프로세스가 32 비트 Windows 시스템에서 실행되는 경우 32 비트 프로세스로 실행됩니다. IL은 x86 기계 코드로 컴파일됩니다.
  • 프로세스가 64 비트 Windows 시스템에서 실행되면 32 비트 프로세스로 실행됩니다. IL은 x86 기계 코드로 컴파일됩니다.
  • 프로세스가 ARM Windows 시스템에서 실행되면 32 비트 프로세스로 실행됩니다. IL은 ARM 기계 코드로 컴파일됩니다.

"모든 CPU 32 비트 기본 설정"과 "x86"의 차이점은 이것뿐입니다. x86으로 컴파일 된 .NET 응용 프로그램은 ARM Windows 시스템에서 실행되지 않지만 "모든 CPU 32 비트 기본 설정"응용 프로그램은 실행되지 않습니다. 성공적으로 실행됩니다.


그 이유는 64 비트 응용 프로그램에서 더 많은 메모리를 사용하지 않으려는 경우입니다. 즉, 응용 프로그램이 AnyCPU 인 경우 32 비트로 실행하려고합니다.

더 추가하기 위해 Visual Studio의 설정은 특정 CLR을 대상으로합니다.

Visual Studio는 x86 컴퓨터에 32 비트 버전의 CLR과 64 비트 Windows 컴퓨터에 32 비트 버전 및 해당 64 비트 버전의 CLR을 모두 설치합니다. Visual Studio는 32 비트 응용 프로그램이므로 64 비트 시스템에 설치하면 WOW64에서 실행됩니다.

64 비트 응용 프로그램 ( MSDN ) 문서를 참조하십시오 .

참고 URL : https://stackoverflow.com/questions/12066638/what-is-the-purpose-of-the-prefer-32-bit-setting-in-visual-studio-and-how-does

반응형