그래, 내가 읽은 적은 있지만 공정한 몇 가지 솔루션을 시도했지만 여전히이 문제를 해결하지 못했습니다.잘못된 Win32 응용 프로그램
32 비트 시스템에서 테스트 할 때 (필자는 1 장에서만 테스트했습니다) 잘못된 32 응용 프로그램으로 시작시 즉시 충돌하고 다른 오류 메시지 나 안내 정보가 없습니다.
응용 프로그램은 C# .NET 4.5.2입니다. 비주얼 스튜디오 2017에 내장되어 있습니다. 저는 빌드 구성에서 X86으로 설정했고 응용 프로그램은 제 64 비트 개발 컴퓨터에서 실행됩니다.
테스트 목적으로 32 비트 Windows 7 가상 시스템을 만들고 솔루션을 빌드하고 출력 빈 폴더의 모든 내용을이 가상 32 비트 Windows 7 시스템에 복사했습니다. 예상대로 잘 실행됩니다. 그러나, 그 정확한 폴더를 물리적 인 32 비트 기계에 복사하면, 잘못된 32 비트 응용 프로그램을 말하는 것이 충돌합니다.
내 애플리케이션이 32 비트에서 실행되고 있음을 확인하기 위해 IntPtr.Size가 4인지 확인하기 위해 조건을 지정하기도합니다.
그래서 리소스가 64 비트로 구축되었다고 생각하게되었지만 32 비트 가상 환경에서 실행되는 이유는 무엇일까? O.o
테스트 할 다른 물리적 32 비트 컴퓨터를 찾으려고합니다.
내가 어떻게 문제를 해결하거나 오류에 대한 자세한 정보를 얻을 수 있는지에 대한 안내는 훌륭합니다.
실제 컴퓨터에는 도트 넷 4.5.2가 설치되어 있고 99.99 % vcredist_x86도 설치되어 있습니다.
x64 용 외부 어셈블리 또는 dll을 참조 했습니까? – Steve
필자는 32 비트 또는 적어도 그렇게해야한다는 것을 알고 있기 때문에 상당히 적은 수의 외부 어셈블리를 참조했습니다. 이 빌드는 32 비트 가상 환경 (VM웨어)에서 작동하지만,이게 아니라고 생각하게합니다. – Sjc311
해제 된 주제 게시물로 표시하는 사람들에게는 중지하십시오. 이것은 정확하게 컴파일러가 32 비트 머신이나 손상에서 문제를 일으키는 64 비트 이미지를 가져 오는 것으로 확인되었습니다 –