.NET 자동 COM 랩핑을 사용하여 COM 응용 프로그램 인 벤더 제품에 대한 참조에 의존하는 코드가 있습니다 (Visual Studio의 참조 추가 대화 상자를 사용하여 참조를 추가하고 명부). 내 코드는 .NET Framework 4.0을 대상으로합니다.두 개의 다른 어셈블리 참조에 대해 동일한 코드를 컴파일 하시겠습니까?
최신 버전의 공급 업체 제품은 COM GUI 응용 프로그램을 더 이상 사용하지 않지만 원래 COM 응용 프로그램과 동일한 API를 구현하는 COM interop DLL과 함께 제공됩니다. 그러나 새 COM interop DLL은 .NET Framework 4.5를 사용하여 컴파일되었습니다.
API가 동일하기 때문에 이전 버전과 새로운 버전의 공급 업체 제품과의 호환성을 위해 두 개의 별도 코드 기반을 유지 관리하고 싶지 않습니다.
원본 VendorApplication COM 구성 요소 (가능하면 .NET 4.0에 해당)와 새로운 VendorApplication.Interop.dll (사용 가능한 경우) 모두에서 작동하는 하나의 코드 기반을 가질 수 있도록 어떻게 Visual Studio 프로젝트를 설정할 수 있습니까? .NET 4.5)?
그래서 .NET 4.0을 대상으로하지만, .NET 4.5를 사용하는 시스템에 응용 프로그램이 설치되어있는 경우 새 공급 업체 라이브러리를 사용하고 싶습니까? – Noseratio
저는 공급 업체 제품과 상호 작용하는 도구를 작성하고 있습니다. 필자는 도구가 이전 버전의 제품 (자동 COM 래퍼 참조)과 최신 버전 (공급 업체 제공 COM interop DLL) 모두에서 작업 할 수 있기를 원하며, 두 코드 기반을 유지할 필요가 없습니다. 동시에 두 버전을 모두 지원하기 위해 .NET 4.5를 사용하여 업그레이드해야한다면, 그래도 괜찮습니다.하지만 4.0에서 이전 COM 래퍼를, 4.5에서 새로운 Interop.DLL을 동시에 타겟팅 할 수 있다면 더 좋습니다 . – Hydrargyrum