로드하지만, 다른 위치에있는 것 :어셈블리의 주문 내가 몇 닷넷 어셈블리, 동일한 버전, 동일한 파일 이름이
- 프로그램 폴더
- C : \ WINDOWS
- C : \ WINDOWS \ system32를
- GAC 위치의 어셈블리가 처음로드됩니다 이제
?
로드하지만, 다른 위치에있는 것 :어셈블리의 주문 내가 몇 닷넷 어셈블리, 동일한 버전, 동일한 파일 이름이
?
닷넷 어셈블리는 일반 창 .DLL보다 다른 검색 순서가 있습니다. 어셈블리의 이름이 강력하게 서명 된 경우에만 GAC가 가장 먼저 검사됩니다. 어셈블리에 gac/strong name 서명이되어 있지 않으면 그 후에 로컬 폴더가 검사됩니다. 그것은 .net 어셈블리 검색 순서의 끝입니다. 위의 1,2,3은 확인되지 않습니다.
당신은 응용 프로그램을위한 로컬 구성 파일을 가지고 .net이 어셈블리를 찾는 위치를 변경할 수 있습니다.
또한 this post in the microsoft.public.dotnet.framework.aspnet
group에는 매우 유용한 정보가 들어 있습니다.
이 합리적인 설명은 다음과 같습니다 http://www.ondotnet.com/pub/a/dotnet/2003/03/17/bindingpolicy.html
MSDN에 다음도 관련이있을 수 : http://msdn.microsoft.com/en-us/library/yx7xezcf.aspx
C : \ Windows 및 C : \ Windows \ System32는 관리되는 어셈블리 검색과 관련이 없습니다. 프레임 워크는 어셈블리를 찾지 않습니다.
는 그것은 app.config 파일에 지정된 경우 폴더가 codebase
/privatepath
설정에 의해 지시에 먼저 GAC
/Application Folder
에서 다음 보인다. (강력한 이름의 어셈블리 만 GAC에 배치 할 수 있습니다.) 프로빙하는 동안 .dll 또는 .exe를 추가하고 assembly.exe/.dll 폴더를 찾고 필요한 경우 특정 문화권을 대상으로하는 어셈블리를 찾고 프로빙 할 때 검사합니다. .
런타임에서 어셈블리 해결 실패를 확인한 폴더를 확인하는 데 유용한 도구는 Fusion Log Viewer입니다. VS 명령 프롬프트에서 'fuslogvw'를 입력하십시오. ApplicationName과 이름으로 입력 된 항목을 보여줍니다.
'ProbingPath'조회를 사용하여 업데이트 할 가치가 있습니다. – GETah
"strong named signed"강하게 명명되고 서명 되었습니까? – user145400