문제

일부 테스트를 완료하려면 32비트 버전의 Windows를 실행하고 있더라도 64비트 버전의 어셈블리를 로드해야 합니다.이것이 가능한가?

도움이 되었습니까?

해결책

왜 당신이 이것을 하고 싶어하는지 잘 모르겠지만, 나는 당신이 할 수 있다고 생각합니다.별도로 지정하지 않으면 CLR은 사용 중인 CPU와 관련된 어셈블리 버전을 로드합니다.그것은 일반적으로 당신이 원하는 것입니다.그러나 어셈블리의 중립 IL 버전을 로드해야 하는 경우가 있었습니다.나는 로드 방법 버전을 지정합니다.나는 그것을 시도하지 않았지만(여기 다른 사람들은 실행 가능한 어셈블리에서는 작동하지 않을 것이라고 제안합니다) 64비트 버전을 로드하도록 지정하기 위해 동일한 작업을 수행할 수 있다고 가정합니다.(AMD64 또는 IA64 버전을 원하는지 지정해야 합니다.)

다른 팁

CLR에서 C#을 통해(Jeff Richter):

"어셈블리 파일에 유형-안전 관리 코드 만 포함 된 경우 32 비트 및 64 비트 버전의 Windows에서 작동 해야하는 코드를 작성하는 것입니다.코드가 Windows 버전에서 실행하려면 소스 코드 변경이 필요하지 않습니다.

실제로, 컴파일러에서 생성 된 결과 EXE/DLL 파일은 32 비트 Windows와 64 비트 Windows의 X64 및 IA64 버전에서 실행됩니다!다시 말해, 하나의 파일은 .NET 프레임 워크 버전이 설치된 모든 컴퓨터에서 실행됩니다. "

" C# 컴파일러는 /platform 명령줄 스위치를 제공합니다.이 스위치를 사용하면 결과 어셈블리가 32 비트 Wind플랫폼을 지정하지 않으면 기본값은 ANDYCPU입니다. 이는 결과 어셈블리가 모든 버전의 Windows에서 실행될 수 있음을 나타냅니다.

32비트 Windows는 VM/에뮤탈러 없이 64비트 실행 파일을 실행할 수 없습니다.

32비트 Windows는 64비트 Windows에서 실행되도록 컴파일할 수 있습니다.

아니요, 32비트 버전의 Windows를 실행하는 시스템에서는 64비트용으로 컴파일된 어셈블리를 실행할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top