C++ 클래스 용 C++/CLI 래퍼를 만들고 있지만 C++/CLI 프로젝트를 작성하여 만든 DLL이 C#에서로드되지 못하고 Assembly.Load가 messageNotFound 예외를 throw합니다. "파일 또는 어셈블리 'CLIExport.dll'또는 해당 종속성 중 하나를로드 할 수 없습니다. 지정한 파일을 찾을 수 없습니다.".NET 어셈블리 DLL에 종속성이 없습니다.
C++/CLI 프로젝트에는 C++ 클래스가 의존하는 래퍼 클래스, 하나의 헤더 파일 만 포함되어 있습니다. 소스 파일과 헤더 파일이 솔루션에 추가되었으므로 참조가 추가되지 않았습니다. C++/CLI 프로젝트에서 C++ 클래스에 대한 참조를 추가해야합니까? 나는 C# 응용 프로그램이 어셈블리가 없다고 생각하는지 모르겠다. 나는 C++/CLI 프로젝트가 클래스와 같이 사용하는 모든 .net 유형에 대한 참조를 가질 필요가 있는지, 참조를 추가 할 필요가 있는지 모르겠다. 시스템 네임 스페이스?
감사합니다.
64 비트 프로젝트에 x86 lib를로드하려고합니까? – squelos
필자는 그렇게 믿지 않는다. 64 비트 PC에서 테스트중인 C# 프로젝트와 동일한 컴퓨터에서 C++/CLI 프로젝트를 만들었다. 64 비트 시스템에서 x86 라이브러리를 만들 수 있습니까? –
http://www.dependencywalker.com/을 사용하고 래퍼 DLL을 열고 누락 된 종속성이 있는지 확인하십시오. –