Я заметил этот раздел в моих файлах web.config некоторое время, и теперь я пытаюсь понять, в чем именно заключается цель:
<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>
Итак, первая запись, кажется, говорит:
System.Web.Helpers - это имя зависимой сборки с общедоступной ключевой токен
31bf3856ad364e35
. Перенаправление версии 1.0.0.0 через 2.0.0.0 до версии 2.0.0.0.
Мое лучшее предположение заключается в том, что это означает, что любой код, выполняемый в контексте времени выполнения ASP.NET, который зависит от сборки с указанным именем, которая также имеет версию в указанном диапазоне, выполняется, как если бы она была скомпилирована с указанным версии с указанным открытым ключом.
Означает ли это, если у меня есть веб-проект, который зависит от библиотеки классов, и эта библиотека классов ссылается на более старую версию сборки, которая имеет привязку к RRirectirect, что код будет выполняться, как если бы он был скомпилирован против более новой версии версия?