2009-06-16 5 views
1

32 비트 플랫폼 서버용 64 비트 plaform의 호환 어셈블리에 대해 선택해야하는 옵션은 무엇입니까? 현재 32 비트 서버에 게시하려고합니다. Windows Vista 시스템에서 VS2005를 사용하여 프로젝트를 빌드 한 다음 서버에 게시하지만 오류가 발생합니다. 어떤 생각을 어떻게하면이 문제를 해결할 수 있습니다.32 비트 용 64 비트 plaform에서 어셈블리 컴파일

64 비트 시스템 또는 혼합 플랫폼 옵션에서 AnyCPU 옵션을 사용해야합니까? 또한 x86의 옵션은 비활성화되어 있으며 그 이유를 알지 못합니다.

+0

어떤 종류의 오류가 서버에 발생합니까? – jerryjvl

+0

예외 System.NullReferenceException : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. (Conversation pGalConversation) C : \ Soe \ IS \ Generic \ BP \ BP.vb : 일반 797 줄 (대화 pGalConversation) – sam

+0

AnyCPU를 사용하여 옵션 컴파일. 테스트 서버에서는 제대로 작동하지만 라이브 서버에서는 실패합니다. – sam

답변

1

관리되는 언어로 작업하고 있다고 가정하면 컴파일 'AnyCPU'는 크로스 플랫폼 (64/32 비트)이어야합니다. 생성 된 IL은 실행될 때 코드가 JIT 될 때까지 기계 명령어로 변환되지 않기 때문입니다.

포인터의 크기 등에 의존하는 특정 구문을 사용하는 경우 비트 의존성을 얻을 수있는 예외는 거의 없지만 일반적으로 코드에 나타나지는 않습니다. 코드를 통해 FxCop을 실행하여 (이 문제를 다루는 이식성을 다루는 FxCop 섹션이 있음)

2

AnyCPU를 사용하십시오. 어셈블리에 특정 CPU에 대해 표시된 어셈블리에 대한 직접적인 관리되지 않는 종속성 또는 종속성이없는 경우 어셈블리가 64 또는 32 비트에서 제대로 작동합니다.

관련 문제