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