다음을 통해 공유


어셈블리 바인딩 리디렉션 구성

비고

이 문서는 .NET Framework에만 적용됩니다. .NET 6 이상 버전을 포함하여 .NET의 최신 구현에는 적용되지 않습니다.

기본적으로 애플리케이션은 애플리케이션을 컴파일하는 데 사용되는 런타임 버전과 함께 제공되는 .NET Framework 어셈블리 집합을 사용합니다. 애플리케이션 구성 파일의 < 특성을 사용하여 어셈블리 바인딩 참조를 특정 버전의 .NET Framework 어셈블리로 리디렉션할 수 있습니다. 이 선택적 특성은 .NET Framework 버전 번호를 사용하여 적용되는 버전을 나타냅니다. appliesTo 특성을 지정<하지 않으면 assemblyBinding> 요소가 모든 버전의 .NET Framework에 적용됩니다.

appliesTo 특성은 .NET Framework 버전 1.1에서 도입되었습니다. .NET Framework 버전 1.0에서 무시됩니다. 즉, 모든 <assemblyBinding> 요소는 appliesTo 특성이 지정된 경우에도 .NET Framework 버전 1.0을 사용할 때 적용됩니다.

비고

appliesTo 특성을 사용하여 어셈블리 바인딩 리디렉션을 특정 버전의 런타임으로 제한합니다.

예를 들어 .NET Framework 버전 1.0 어셈블리에 대한 어셈블리 바인딩을 리디렉션하려면 애플리케이션 구성 파일에 다음 XML 코드를 포함합니다.

<runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v1.0.3705">
            <dependentAssembly>
               * assembly information goes here *
            </dependentAssembly>
       </assemblyBinding>
</runtime>

<assemblyBinding> 요소는 순서를 구분합니다. 먼저 .NET Framework 버전 1.0 어셈블리에 대한 어셈블리 바인딩 리디렉션 정보를 입력한 다음 모든 .NET Framework 버전 1.1 어셈블리에 대한 어셈블리 바인딩 리디렉션 정보를 입력해야 합니다. 마지막으로 appliesTo 특성을 사용하지 않으므로 모든 버전의 .NET Framework에 적용되는 .NET Framework 어셈블리 리디렉션에 대한 어셈블리 바인딩 리디렉션 정보를 입력합니다. 리디렉션에서 충돌이 발생할 경우 구성 파일에서 일치하는 첫 번째 리디렉션 문이 사용됩니다.

예를 들어 한 참조를 .NET Framework 버전 1.0 어셈블리로 리디렉션하고 다른 참조를 .NET Framework 버전 1.1 어셈블리로 리디렉션하려면 다음 의사 코드에 표시된 패턴을 사용합니다.

<assemblyBinding xmlns="..." appliesTo="v1.0.3705">
  <!-- .NET Framework version 1.0 redirects here. -->
</assemblyBinding>

<assemblyBinding xmlns="..." appliesTo="v1.1.4322">
  <!-- .NET Framework version 1.1 redirects here. -->
</assemblyBinding>

<assemblyBinding xmlns="...">
  <!-- Redirects meant for all versions of the .NET Framework. -->
</assemblyBinding>

구성 파일 디버깅 오류

런타임은 애플리케이션 도메인을 만들 때 구성 파일을 한 번 구문 분석하고 해당 애플리케이션 도메인에 코드를 로드합니다. 공용 언어 런타임은 항목을 무시하여 구성 파일의 오류를 처리합니다. 런타임은 잘못된 형식의 XML이 포함된 경우 전체 구성 파일을 무시합니다. 잘못된 XML의 경우 잘못된 섹션만 무시됩니다.

어셈블리 바인딩 리디렉션이 발생하는지 여부를 확인하여 구성 파일을 사용하고 있는지 여부를 확인할 수 있습니다. 어셈블리 바인딩 로그 뷰어(Fuslogvw.exe)를 사용하여 로드되는 어셈블리를 확인합니다. 모든 어셈블리 바인딩을 보려면 레지스트리에서 ForceLog 에 대한 항목을 설정해야 합니다.

참고하십시오