바인딩 리디렉션이 필요한 이유는 무엇입니까? 라이브러리 B를 참조하는 애플리케이션 A와 버전 1.1.2.5의 라이브러리 C가 있다고 가정합니다. 라이브러리 B는 라이브러리 C도 참조하지만 버전 1.1.1.0입니다. 런타임에 동일한 어셈블리의 다른 버전을로드 할 수 없기 때문에 이제 충돌이 발생합니다. 이 충돌을 해결하려면 일반적으로 새 버전으로 바인딩 리디렉션을 사용할 수 있습니다 (그러나 이전 버전도 가능). configuration > runtime > assemblyBinding
섹션 아래에있는 애플리케이션 A의 app.config 파일에 다음을 추가하면됩니다 ( 전체 구성 파일의 예는 여기 참조 ).
<dependentAssembly>
<assemblyIdentity name="C"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<bindingRedirect oldVersion="1.1.1.0" newVersion="1.1.2.5" />
</dependentAssembly>
매핑 할 다양한 버전을 지정할 수도 있습니다.
<bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.2.5" />
이제 버전 1.1.1.0의 C를 참조하여 컴파일 된 라이브러리 B는 런타임에 버전 1.1.2.5의 C를 사용합니다. 물론 라이브러리 C가 이전 버전과 호환되는지 확인하는 것이 좋습니다. 그렇지 않으면 예기치 않은 결과가 발생할 수 있습니다.
주요 라이브러리뿐만 아니라 모든 버전의 라이브러리를 리디렉션 할 수 있습니다.
oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"