¿Por qué se necesitan redireccionamientos vinculantes? Suponga que tiene la aplicación A que hace referencia a la biblioteca B, y también a la biblioteca C de la versión 1.1.2.5. La Biblioteca B a su vez también hace referencia a la biblioteca C, pero de la versión 1.1.1.0. Ahora tenemos un conflicto, porque no puede cargar diferentes versiones del mismo ensamblaje en tiempo de ejecución. Para resolver este conflicto, puede usar la redirección de enlace, generalmente a la nueva versión (pero también puede ser a la anterior). Para ello, agregue lo siguiente al archivo app.config de la aplicación A, en la configuration > runtime > assemblyBinding
sección (consulte aquí un ejemplo de archivo de configuración completo):
<dependentAssembly>
<assemblyIdentity name="C"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<bindingRedirect oldVersion="1.1.1.0" newVersion="1.1.2.5" />
</dependentAssembly>
También puede especificar un rango de versiones para asignar:
<bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.2.5" />
Ahora la biblioteca B, que se compiló con referencia a C de la versión 1.1.1.0, usará C de la versión 1.1.2.5 en tiempo de ejecución. Por supuesto, es mejor que se asegure de que la biblioteca C sea compatible con versiones anteriores o que esto pueda conducir a resultados inesperados.
Puede redirigir cualquier versión de las bibliotecas, no solo las principales.
oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"