我已经注意到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运行时上下文中执行的任何代码,这些代码依赖于具有指定名称的程序集,该程序集在指定范围内的版本也会执行,就好像它是用指定的公钥使用指定版本编译的一样。
这是否意味着,如果我有一个依赖于类库的web项目,而且类库引用了具有bindingRedirect的程序集的旧版本,那么代码就会执行,就好像它是针对新版本编译的一样吗?
发布于 2013-02-24 21:13:56
这是否意味着,如果我有一个依赖于类库的web项目,而且类库引用了具有bindingRedirect的程序集的旧版本,那么代码就会执行,就好像它是针对新版本编译的一样吗?
您说得对(我只想说"...the代码将像引用更新的版本一样执行“),请参阅http://msdn.microsoft.com/en-us/library/7wd6ex19%28v=vs.110%29.aspx
“当您针对强名称程序集的特定版本构建.NET框架应用程序时,应用程序在运行时使用该版本的程序集。但是,有时您可能希望应用程序针对较新版本的程序集运行。”
https://stackoverflow.com/questions/15056499
复制相似问题