2012-12-27 1 views
3

우리 상관 CPU 타겟팅 된 응용 프로그램을 가정하지만,이 애플리케이션은 두 가지 종류, 32 비트 및 64 비트가 타사 조립체를 사용한다. 그들 중 어느 것이 사용해야합니까? 은 "모든"옵션은 32 비트와 64 비트 모두, 어떻게 그것을 어셈블리의 두 가지 버전을 제공 할 수 있습니다에서 응용 프로그램을 실행하는 경우대상 CPU가 "모두"이고 어셈블리에 x32 및 x64의 두 가지 버전이있는 경우 어떻게됩니까?

?

내 특정 필요는 .NET SQLite 드라이버입니다. 하나의 x86로 컴파일 한 64로 컴파일 - 당신이 어셈블리를 참조하는 정적이 될 가능성이 있기 때문에

답변

2

리얼 간단한 : 당신이 "모든 CPU"에 대한 귀하의 응용 프로그램을 대상으로하는 경우

  • , 동일하다면 모든 것이, 응용 프로그램은 32 비트 또는 64 비트 시스템에서 실행할 수 있습니다.

  • "모든 CPU"응용 프로그램이 32 비트 또는 64 비트 DLL에 종속되면 종속성이없는 시스템에서 실행하려고하면 실패합니다.

  • 는 "어디에서나 실행"할 경우

    후 가장 좋은 건 (대신 "모든 CPU"의) 32 비트를 대상으로 수 있습니다. 64 비트에 대한 특별한 요구 사항이 없으면 실제로는 64 비트가 필요하지 않습니다. 64 비트 땅에서 응용 프로그램을 실행 "BadImageExceptions을"가 발생하는 경우

  • , 당신은 "사용자 지정 작업"을 고려해 볼 수 있습니다

    http://adamhouldsworth.blogspot.com/2010/10/64bit-custom-actions.html

0

, 당신은 응용 프로그램의 두 가지 버전이 필요합니다.

Sqllite 드라이버에 대해 잘 알지 못하지만 일반적으로 드라이버의 x86 버전을 사용하는 것으로 충분해야합니다. 여전히 WOW32 에뮬레이션 메커니즘을 통해 x64 시스템에서 실행됩니다. 이는 x86 및 x64 시스템 모두에 설치할 수있는 단일 버전 (x86) 만 컴파일 할 수 있다는 것을 의미합니다 (previous question의 Mark Hall에서 언급했듯이). x64 특정 기능 (예 : 더 큰 데이터 유형, 사용 가능한 RAM 등)을 사용하려면 x64 용으로 컴파일해야합니다.

관련 문제