2016-05-31 2 views
0

64 비트 컴퓨터에서 Visual Studio 2013의 새로운 .NET 4.5 WinForm 프로젝트를 만들었습니다. 컴파일이 끝나면 .exe에서 corflags를 실행하고 32BIT 플래그가 설정됩니다.AnyCPU로 컴파일하면 64 비트 컴퓨터에서 32BIT 플래그가 설정된 어셈블리가 생성됩니다.

Version : v4.0.30319 
CLR Header: 2.5 
PE  : PE32 
CorFlags : 131075 
ILONLY : 1 
32BIT  : 1 
Signed : 0 

작업 관리자를 살펴보면 32 비트 프로세스로 표시됩니다.

32 비트 모드로 실행하도록하는 참조를 추가하지 않았습니다. 나는 프로젝트 파일을 살펴 보았고 의심스러운 것도 발견하지 못했습니다.

어셈블리에서 corflags /32BIT-을 실행할 수 있으며 64 비트 프로세스로 올바르게 실행됩니다.

32 비트 실행 파일로 컴파일 할 수있는 원인은 무엇입니까?

+3

당신은'.csproj' 파일에 어딘가에 설정 한'Prefer32Bit'은 MSBuild 속성을 가지고 있습니까? –

+1

프로젝트 속성에는 "빌드"라는 탭이 있습니다. "Platform target"필드 아래에 "Prefer 32-bit"필드가 있습니다. 그것은 당신이 바꿀 필요가있을 수 있습니까? – AndyJ

+0

@AndyJ 그 재산이 있는지 몰랐습니다. 그 기능을 끄고 재건하면 문제가 해결됩니다. –

답변

2

프로젝트 속성 페이지는 "빌드"(A) 페이지입니다.

"플랫폼 대상"필드 (B)에서 "32 비트 선호"필드 (C)입니다.

corflags에서 32 비트 플래그를 제거하도록 토글 할 수 있습니다.

Prefer 32bit (VS 2015에서 이미지)