2009-06-12 4 views
11

"모든 CPU"컴파일 된 .NET 응용 프로그램이 있으면 64 비트 OS에서 64 비트 모드로 실행됩니다."Any CPU"컴파일 된 앱을 64 비트 OS에서 32 비트 모드로 강제 실행하는 방법이 있습니까?

그러나 어떤 이유로 든이 앱이 32 비트 모드로 실행되도록하고 싶습니다. (마치 "x86"을 사용하여 컴파일 된 것처럼). 재 컴파일은 옵션이 아니므로 런타임에 구성 할 수 있습니까? .manifest 파일로 아마도?

답변

10

난 당신이 CorFlags.exe

뭔가 등으로이 작업을 수행 할 수 있다고 생각 : 어셈블리라는 강한 경우도/강제 옵션을 사용해야 할 것이다 +


CorFlags yourassembly.exe/32BIT하는 강력한 네이밍을 깨뜨린 다음 어셈블리를 사임해야합니다.

+0

글쎄, 그건 불행히도 가능하지 않습니다. 문제의 앱은 이름이 강력하고 최종 사용자 (소비자)에게 배포되며 다시 서명하는 것도 실제로 옵션이 아닙니다. 너무 나빴어. –

+1

지정한 어셈블리에 대한 강력한 이름 확인을 건너 뛰도록 CLR을 설정할 수 있습니다. "sn.exe -Vr assemblyname"(다시 활성화하려면 -Vu)을 사용하십시오. 분명히 이것은 고객 기계에서 실행되어야합니다. 강력한 이름 확인을 기본적으로 사용하지 않도록 설정하면 기본적으로 CLR의 보안 구멍을 뚫으므로 모든 어셈블리를 응용 프로그램에 복사 할 수 있으며 자동으로 완전한 신뢰를 얻을 수 있습니다 (http://msdn.microsoft.com/en/default.aspx). -us/library/k5b5tt23.aspx). 내 추천은 이것을 망치거나, 다시 컴파일 할 방법을 찾거나, 그렇게하지 않는 것입니다. –

+0

@Simon P.stevens, 나는 모든 점에서 당신과 동의합니다. 내 희망은 그것이 배포 할 수있는 매니페스트 파일의 항목 일 수 있다는 것이 었습니다. 그러나 그것은 그렇지 않습니다. –

관련 문제