문제

관리하는 C# 코드에서 관리되지 않는 DLL을 호출하고 있으며 올바른 버전을 호출하고 싶었습니다.

어셈블리를로드하려는 코드 (리소스 파일을 얻은 다음 버전을 가져 오기 위해)는 다음과 같습니다. cur_version = assembly.loadfile ( "x : workspace yreceipts_pos yrprintprocessor debug yrprintprocessor.dll"); 이 오류로 인해 실패합니다.The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)

이 문제를 해결하는 방법을 알고 있거나 관리되는 C# 코드에서 관리되지 않은 DLL 버전을 확인하는 더 나은 방법을 알고 있습니까?

미리 감사드립니다, 리차드

도움이 되었습니까?

해결책

logicnp에 의해 언급 된 바와 같이; Assembly.Load는 관리 조립품만을위한 것입니다. 모든 버전 ED 파일의 버전을 결정하려면 System.Diagnostics.FileVersionInfo.getVersionInfo (Filename)를 사용하고 DLLS에서 관리되지 않은 절차를로드하여 호출 할 수 있습니다.이 기사를 참조하십시오.

http://blogs.msdn.com/jonathanswift/archive/2006/10/02/780637.aspx http://blogs.msdn.com/jonathanswift/archive/2006/10/03/dynamically-calling-an-unmanaged-nmanged-nnet-from-._2800_c_23002900_.aspx

행운을 빕니다...

다른 팁

실패한 이유는 조립품을 사용할 수 없기 때문에 관리되지 않는 DLL을로드하기 때문입니다. David Brown이 제안한 링크를 참조하십시오.

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