2009-12-11 2 views
3

구성 (myapp.exe.config) 파일에 지정된 하위 폴더에서 대부분의 dll을로드하는 응용 프로그램이 있습니다 (.config 파일의 <probing privatePath ... attr> 어셈블리에서로드 어셈블리

).
<probing privatePath="subdir"/> 

내 질문은 : 나는 프로빙 경로에 지정한 것과 같은 하위 디렉토리 "하위 디렉터리"에, 그 경우 DLL의 생명 만의 파일 이름을 사용하여 런타임에서 DLL (mydll.dll 말) 를로드 할 수 있습니까?

나는 Assembly.LoadFile("mydll.dll")을 시도했지만 "subdir"에서는 검색하지 않습니다.

답변

1

당신은 DLL 파일을로드 할 필요가 없습니다, 당신의 유형을 얻을 수 Type.GetType (TYPENAME)를 사용하여, 다음

+2

당신은 당신이 유형의 완전한 이름이 필요하다는 것을 알고 있어야한다 예를 개체에이 형식을 사용 이 솔루션이 올바르게 작동하려면 [http://msdn.microsoft.com/en-us/library/w3f99sx1.aspx](http://msdn.microsoft.com/en-us/library/w3f99sx1)를 참조하십시오. aspx) –

4

개인적으로 나는 신뢰 프로브 경로를 정말로 신뢰하지 않습니다 - dll은 항상 악몽이었고 .net은 그 상황을 개선하기 위해 아무 것도하지 않았습니다. 어쨌든 Assembly.Load를 사용하려고하고 정확히 어디에 있는지 알고 있다면, dll을 직접 찾아서 정확히로드하지 말고 .net에서 6 세 이상을 결정하도록하십시오. 근거리 통신망 구석 구석 훨씬 더 흥미 진진한가?

관련 문제