이것이 문제가되지 않는 질문을하지만 일반적인 이해를 질문에 어셈블리 바인딩 redirect's 니다.
쿼리
<이 없는 것으로 확인된 oldVersion="리 7.0.0.0"newVersion="8.0.0.0"/>
이유는 바인딩을 리디렉션에 필요한 모든? 이 있다고 가정 응용 프로그램을 참조하는 라이브러리 B,또한 라이브러리의 C 버전 1.1.2.5. 라이브러리 B 에서는 또한 참조는 C 라이브러리,그의 버전 1.1.1.0. 이제 우리는 충돌할 수 없기 때문에 짐을 다른 버전의 동일 집합을 수 있습니다. 이러한 충돌을 해결하려면 사용할 수 있습니다 바인딩을 리디렉션,일반적으로 새로운 버전(지할 수 있습하는 오래 된도). 당신이 수행하는 다음을 추가하여하는 앱입니다.config 파일에의 응용 프로그램,아래의 구성>runtime>assemblyBinding`섹션(참조하십시오 여기서]1에 대한 예체 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" />
이 라이브러리 B,는 컴파일을 참조하여 C 버전 1.1.1.0 사용할 C 버전 1.1.2.5 을 수 있습니다. 물론,당신은 더 나은지 확인하는 C 라이브러리는 하위 호환성하거나 이로 이어질 수 있습을 예상치 못한 결과입니다.
리디렉션할 수 있습니다 모든 버전의 라이브러리,단지 주요 것들입니다.
는 문제 바인딩에 대한 리디렉션 NewtonSoft.Json. 우리는 최대 파일 버전에서 승 10 의 파일 속성"9.0.1.19813",보수와 리디렉션을 유지 실패합니다. 추가 조사의 발견 그리고 파일 버전지 어셈블리 버전입니다. 그래서,궁금하면 사람들은 착각 파일 버전(는 변화는 종종)및 어셈블리 버전(할 수있는't windows10 에서 파일 탐색기). 보 어셈블리의 버전을 dll 을 실행할 수 있습니다 이에 powershell. 교체 dll 이름으로 하나 당신을 찾고 싶어 버전니다.
[Reflection.AssemblyName]::GetAssemblyName('C:\development\bin\Newtonsoft.Json.dll').Version
의 결과가 상이다.
Major Minor Build Revision
----- ----- ----- --------
9 0 0 0
참조: