부분적으로 정규화된 어셈블리 참조는 Side-by-Side 실행 문제의 원인이 될 수 있으므로 응용 프로그램 디렉터리 내의 어셈블리에 바인딩하는 데만 사용할 수 있습니다. 코드에는 부분적으로 정규화된 어셈블리 참조를 사용하지 않도록 하십시오.
코드에서 부분적으로 정규화된 어셈블리 참조를 줄이려면 응용 프로그램 구성 파일에서 <qualifyAssembly> 요소를 사용하여 코드에 나타나는 부분적으로 정규화된 어셈블리 참조를 완전히 정규화할 수 있습니다. <qualifyAssembly> 요소를 사용하여 부분 참조에 설정되지 않은 필드만 지정합니다. fullName 특성에 표시된 어셈블리 ID는 어셈블리 이름, 공개 키, 문화권 및 버전과 같이 어셈블리 이름을 완전하게 정규화하는 데 필요한 모든 정보를 포함해야 합니다.
다음 예제에서는 myAssembly라는 어셈블리를 완전하게 정규화하기 위한 응용 프로그램 구성 파일 항목을 보여 줍니다.
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="myAssembly"
fullName="myAssembly,
version=1.0.0.0,
publicKeyToken=...,
culture=neutral"/>
</assemblyBinding>
이렇게 구성 파일을 설정하면 어셈블리 로드 문이 myAssembly를 참조할 때마다 런타임에서 부분적으로 정규화된 myAssembly 참조를 자동으로 정규화된 참조로 변환합니다. 예를 들어, Assembly.Load("myAssembly")는 Assembly.Load("myAssembly, version=1.0.0.0, publicKeyToken=..., culture=neutral")이 됩니다.
![]() |
---|
LoadWithPartialName 메서드를 사용하면 부분적으로 참조된 어셈블리가 전역 어셈블리 캐시에서 로드되지 못하게 하는 공용 언어 런타임 제한을 무시할 수 있습니다.이 메서드는 Side-by-Side 실행에서 문제를 일으키기 쉬우므로 원격 시나리오에서만 사용해야 합니다. |