.NET 응용 프로그램에 표시 할 C++ DLL (코드 없음)이 있습니다.네이티브 C++ DLL을 .NET에 래핑하는 DLL 종속성 추적
내가 아는 모든 옵션에 대해 숙고 한 후에 (COM, P/Invoke, SWIG 등) 찾을 수 있지만 .NET 클래스 라이브러리 (C++/CLI)를 작성하고 있습니다. 이제 결과 DLL (클래스 라이브러리)에는 원본 DLL과 그 종속성이 필요합니다. 내 문제는 자동으로 이러한 것들을 추적하므로 래퍼를 사용하는 응용 프로그램은 다른 DLL을 추적 할 필요가 없습니다 (특히 원본 DLL이 새로운 종속성을 개발하는 경우).
좀 더 정확하게 (그리고 토론 할 구체적인 내용이 있음) cmr
을 랩핑하려하고 있으므로 MR
클래스 라이브러리 (자연히 cmr
에 따라 다름)를 작성합니다. cmr
은 PNL
, OpenCV
및 기타에 따라 다릅니다. MR
에 대한 참조를 (C#) 프로젝트에 추가하려고 시도했을 때 Visual Studio (2005 SP1)가 MR.DLL
을 복사하고 모든 종속성을 남기고 난 다음에 불평합니다 (누락 된 모듈에 대해서는 FileNotFoundException
이 표시됨). 수동으로 cmr
, PNL
등을 bin
디렉토리에 복사하면 문제가 해결됩니다.
더 이상의 고민없이, 내 질문은 : .NET 애플 리케이션을 하나의 DLL에 대한 참조를 추가하는 방법이 있습니까, 그리고 모든 그냥 작동?
나는 Google을 통해 수색 봤는데 SO, 아무 소용이 ...
편집 : mergebin는 가장 가까운 것 같다 내가 무엇을 찾고 있어요,하지만 그것은 단지와 .NET DLL을 병합 할 수 있습니다 하나의 네이티브 DLL. 너무 나쁜 DLL은 네이티브 DLL을 병합 할 수 없습니다. 당신은 두 가지 특정 문제를 가지고있는 것처럼
+1 좋은 방법입니다. 네이티브 dll 이름은 관리되는 dll 매니페스트에 포함됩니다. 빌드 도구 (적어도 이론적으로)는 DLL이 여전히 돌아 다니고 있지만 네이티브 종속성을 파악할 수 있습니다. 웹 배포 시나리오에서 잘 작동합니다. – tivadj