나는 C# 프로젝트를 가지고 있으며 솔루션에서 플랫폼 대상은 AnyCPU입니다. 매일이 솔루션을 빌드하고 msbuild.exe를 사용하는 빌드 프로그램이 있습니다. 이 명령은 추천했습니다 :msbuild.exe로 C# 프로젝트를 빌드해도 프로젝트 대상 플랫폼 구성을 덮어 쓰지 않으십니까?
MSBuild에서 D를 : \ my.sln/P : 구성 = 릴리스/P : 플랫폼 = 86/t : .... 다시
는 여기에 컴파일 된 플랫폼은 86해야 지정합니다.제 의견으로는 msbuild.exe는 솔루션 구성을 덮어 써야하고 출력은 anyCPU 유형 대신 x86 exe 여야합니다.
나는이 프로젝트에 다음 코드를 시도 :
PortableExecutableKinds peKind;
ImageFileMachine machine;
Assembly.GetExecutingAssembly().ManifestModule.GetPEKind(out peKind, out machine);
시험 결과는 제안 exe 인은 anycpu를 모드 (ILONLY)이다,하지 무엇을 기대했다. 그런 상황에서 어떻게 프로그램을 x86이나 x64로 코드별로 컴파일 할 수 있습니까?
감사합니다. 리
감사합니다. SchlaWiener. 방금 내 게시물을 업데이트합니다. 내 영토 밖이기 때문에 빌드 스크립트를 수정할 수 없습니다. 그래서 내 질문에 줄이기 어떻게 x86/x64 정보를 코드로 얻을 수 있습니까? 테스트 후/p : Platform = x86 또는/p : Platform = x64 인 i 컴파일러의 경우 실제 dll이 다릅니다 (x64 컴파일 된 프로그램에서 x64 컴파일 된 프로그램에서 오류가 발생 함). peKind = ILOnly . – DingLi
x86/x64 프로세스에서 다른 'IntPtr.Size'를 확인하십시오. –