我在我一会儿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
。 通过2.0.0.0版本重定向到1.0.0.0版本2.0.0.0。
我最好的猜测是,它意味着在依赖于具有指定名称里面也有指定范围内的一个版本的程序集的ASP.NET运行时的上下文中执行任意代码执行,就好像它是用在指定的版本编译指定的公钥。
这是否意味着,如果我有依赖于一个类库和类库有一个旧的版本,具有AA bindingRedirect组件的参考,该代码将执行,就好像它是针对新版本编译Web项目?