2009-06-05 2 views

답변

4

닷넷 어셈블리는 일반 창 .DLL보다 다른 검색 순서가 있습니다. 어셈블리의 이름이 강력하게 서명 된 경우에만 GAC가 가장 먼저 검사됩니다. 어셈블리에 gac/strong name 서명이되어 있지 않으면 그 후에 로컬 폴더가 검사됩니다. 그것은 .net 어셈블리 검색 순서의 끝입니다. 위의 1,2,3은 확인되지 않습니다.

당신은 응용 프로그램을위한 로컬 구성 파일을 가지고 .net이 어셈블리를 찾는 위치를 변경할 수 있습니다.

또한 this post in the microsoft.public.dotnet.framework.aspnet group에는 매우 유용한 정보가 들어 있습니다.

+1

'ProbingPath'조회를 사용하여 업데이트 할 가치가 있습니다. – GETah

+0

"strong named signed"강하게 명명되고 서명 되었습니까? – user145400

0

C : \ Windows 및 C : \ Windows \ System32는 관리되는 어셈블리 검색과 관련이 없습니다. 프레임 워크는 어셈블리를 찾지 않습니다.

는 그것은 app.config 파일에 지정된 경우 폴더가 codebase/privatepath 설정에 의해 지시에 먼저 GAC/Application Folder에서 다음 보인다. (강력한 이름의 어셈블리 만 GAC에 배치 할 수 있습니다.) 프로빙하는 동안 .dll 또는 .exe를 추가하고 assembly.exe/.dll 폴더를 찾고 필요한 경우 특정 문화권을 대상으로하는 어셈블리를 찾고 프로빙 할 때 검사합니다. .

런타임에서 어셈블리 해결 실패를 확인한 폴더를 확인하는 데 유용한 도구는 Fusion Log Viewer입니다. VS 명령 프롬프트에서 'fuslogvw'를 입력하십시오. ApplicationName과 이름으로 입력 된 항목을 보여줍니다.

관련 문제