문제

COM 구성 요소를 사용하는 .NET 응용 프로그램이 있습니다. 응용 프로그램 자체는 "모든 CPU"이지만 COM 구성 요소에는 32 비트 및 64 비트 버전이 있습니다.

기사 http://msdn.microsoft.com/en-us/magazine/cc188708.aspx 등록이없는 com을 위해 무엇을 해야하는지 명확합니다. 그러나 하나는 무엇을해야합니까 :

  • "모든 CPU"앱
  • 종속 조립 :
  • Assembly1은 com 구성 요소 "foo"를 사용하고 Foo는 동일한 파일 이름과 함께 32 비트 및 64 비트 버전을 가지고 있습니다 (우리는 Foo를 만들지 않았으며 제 3자가 만들었습니다).

작동하는 한 가지 방법은 32 비트 릴리스 및 64 비트 릴리스를위한 별도의 앱 매니페스트를 만드는 것입니다. 이렇게하면 각 매니페스트 파일에는 COM 구성 요소의 올바른 크기와 해시가 포함될 수 있습니다. 그래도 피하고 싶습니다.

어쨌든 번거 로움없이 Visual Studio에서 이것을 설정하는 것이 가능합니까? 응용 프로그램이 두 플랫폼을 모두 원활하게 실행하는 단일 폴더 (COM 구성 요소의 x86 서브 폴더 포함)가있을 수 있습니까?

올바른 방향의 모든 포인터는 크게 감사하겠습니다! 나는 아마도 간단한 스위치 나 어딘가에 설정을 내려다보고있을 것입니다.

도움이 되었습니까?

해결책

ProcessorArchitecture 요소를 사용하면 an을 쓸 수 있습니다 <assemblyIdentitiy> 그것은 구체적입니다. "x86"을 사용하는 두 개, 다른 하나는 "AMD64"를 추가하십시오. 이것 (매우 가난한)에 문서화되어 있습니다. MSDN 도서관 기사.

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