2009-05-05 2 views

답변

17

아니요.이를 달성 할 수 없습니다. 귀하의 프로그램에서 언급 된 것과 동일한 버전의 DLL이 GAC에 존재하는 경우 CLR은 입니다. 항상이 하나를 선택하십시오. 이 동작을 재정의 할 방법이 없습니다.

+0

보안과 관련이 있습니까? – codeulike

+0

@codeulike, 나는 그것이 서비스와 관련이 있다고 믿습니다. 나는 그것이 가능하지 않다는 것을 깨닫기 전에이 행동을 뒤엎 으려고 많은 시간을 보냈기 때문에 그렇게 할 수있는 능력이 왜 더 중요하지는 않습니다. – JaredPar

+5

이것이 내 책에서 GAC가 악한 이유입니다. – Benjol

2

실제로 검색 순서를 역으로 바꿀만한 것이 있는지는 잘 모르겠지만 요구 사항에 따라 assembly binding redirection을 살펴보면 어떤 버전의 어셈블리가로드되는지 꽤 많이 알 수 있습니다.

+1

그러면 바인딩 할 버전이 변경됩니다. 그러나 당신이 선택한 버전은 내가 언급 한 GAC 규칙의 적용을받을 것입니다. – JaredPar

+0

사실, 이것을 반영하기 위해 약간의 답을 명확히했습니다. –

1

JaredPar 맞음 - GAC는 항상이 먼저 조립에 대해 폴링됩니다. 그러나, 만약 당신이 나를 좋아하고 DLL을 GAC에 저장하고 디버그하고 싶다면 빌드 스크립트를 추가하여 .pdb 파일을 GAC의 어셈블리와 동일한 폴더에 덤프 할 수 있습니다 C : \ windows \ assembly \ gac_msil \ assembly.name_ [공개 키 토큰]).

관련 문제