2014-07-22 2 views
0

나는 예외 타격 오전 : Unable to load DLL (Module could not be found HRESULT: 0x8007007E)에 대한 답은 우리가 모든 관리 DLL을 함께, 현재 디렉토리에서 관리되지 않는 DLL을 유지하려면, 알 수 있듯이디버깅 'MyDll.dll'DLL을로드 할 수 없습니다 : 지정한 모듈을 찾을 수 없습니다. (HRESULT에서 예외 : 0x8007007e가)

Unable to load DLL 'MyDll.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) 

를 (그리고 거기에있다). 디버깅 목적으로 dll을로드하는 데 사용될 현재 디렉토리를 어떻게 인쇄 할 수 있습니까? Directory.GetCurrentDirectory()입니까?

+0

의 DLL 폴더 검색 순서는 여기에 설명되어 있습니다 : http://stackoverflow.com/questions/268627/where-does-dllimport-look-for-unmanaged-dlls 여기에 설명 된 것처럼 당신은 명시 적으로 설정할 수 있습니다 검색 디렉토리 : HTTP : //stackoverflow.com/questions/2864673/specify-the-search-path-for-dllimport-in-net –

+0

현재 디렉토리는 특별히 관련이 없습니다. 코드를 보여 주거나 충분한 정보를 제공하지 않습니다. –

+0

@DavidHeffernan, 어떻게 현재 디렉토리가 관련이 없습니까? DLL을 찾는 데는 두 번째 장소가되어야합니다 ... – Grzenio

답변

0

Environment.CurrentDirectory를 사용하여 응용 프로그램의 현재 작업 디렉토리를 가져올 수 있습니다. 원하는 것을 줄 수 있습니다.

Assembly.GetExecutingAssembly(). Location은 현재 실행중인 실행 파일 또는 DLL이있는 디렉터리를 반환합니다.

CurrentDirectory는 FileDialogs 및 다른 클래스로 변경할 수 있습니다. 따라서 응용 프로그램의 진입 점을 포함하는 디렉토리와 다를 수 있습니다.

+0

또한 .NET은 DLL이로드 된 경우 GAC (전역 어셈블리 캐시)에서 DLL을 찾을 수 있습니다. –

관련 문제