true redirects autogeneratebindingredirects autogenerate c# asp.net web-config assemblybinding

c# - redirects - ¿Cuál es el significado/razón de las entradas generadas en web.config> configuración> tiempo de ejecución> ensamblaje de enlace?



autogenerate binding redirects (1)

He notado esta sección en mis archivos web.config por un tiempo y ahora estoy tratando de razonar cuál es exactamente el propósito:

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime>

Entonces, la primera entrada parece decir:

System.Web.Helpers es el nombre de un ensamblado dependiente con un token de clave pública de 31bf3856ad364e35 . Redirigir la versión 1.0.0.0 a 2.0.0.0 a la versión 2.0.0.0.

Mi mejor conjetura es que significa que cualquier código que se ejecute en el contexto del tiempo de ejecución de ASP.NET que depende de un ensamblaje con el nombre especificado que también tiene una versión en el rango especificado, se ejecuta como si se compilara con la versión especificada con el Clave pública especificada.

¿Esto significa que si tengo un proyecto web que depende de una biblioteca de clases y esa biblioteca de clases tiene una referencia a una versión anterior del ensamblaje que tiene un enlace obligatorio, que el código se ejecutará como si se compilara contra la versión más reciente?


¿Esto significa que si tengo un proyecto web que depende de una biblioteca de clases y esa biblioteca de clases tiene una referencia a una versión anterior del ensamblaje que tiene un enlace obligatorio, que el código se ejecutará como si se compilara contra la versión más reciente?

Lo tiene correcto (solo diría que "... el código se ejecutará como si estuviera haciendo referencia a la versión más reciente"), consulte http://msdn.microsoft.com/en-us/library/7wd6ex19%28v=vs.110%29.aspx

"Cuando creas una aplicación .NET Framework contra una versión específica de un ensamblaje con nombre seguro, la aplicación usa esa versión del ensamblaje en tiempo de ejecución. Sin embargo, a veces es posible que desees que la aplicación se ejecute contra una versión más nueva de un ensamblaje. "