В чем смысл/причина сгенерированных записей в web.config> configuration> runtime> assemblyBinding?
Я заметил этот раздел в моих файлах 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, что код будет выполняться, как если бы он был скомпилирован против более новой версии версия?
Ответы
Ответ 1
Означает ли это, если у меня есть веб-проект, который зависит от библиотеки классов и эта библиотека классов ссылается на более раннюю версию сборка, которая имеет bindingRedirect, что код будет выполняться как если он был скомпилирован против более новой версии?
У вас все правильно (я бы сказал: "... код будет выполняться как
если это ссылка на более новую версию "), см. http://msdn.microsoft.com/en-us/library/7wd6ex19%28v=vs.110%29.aspx
"Когда вы создаете приложение .NET Framework против определенного версия сильной именной сборки, приложение использует эту версию сборки во время выполнения. Однако иногда вам может понадобиться приложение для работы с более новой версией сборки".