Tag: assemblybinding

.Net程序集绑定redirect与不同的公钥标记

如果公钥标记在旧版本上为空,并在较新版本上设置,是否有可能在引用程序集的不同版本之间执行程序集绑定redirect? 例如,我有两个程序集… System.Web.Mvc,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null 和 System.Web.Mvc,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 如果下面的程序集绑定redirect工作在Asp.Net web.config中… <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime>

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.0redirect到版本2.0.0.0。 我最好的猜测是,它意味着在ASP.NET运行时环境中执行的任何代码都依赖于具有指定名称的程序集,该程序集也具有指定范围内的版本,就像执行指定版本指定的公钥。 这是否意味着如果我有一个Web项目依赖于一个类库,并且该类库有一个具有一个bindingRedirect的程序集的旧版本的引用,该代码将执行,如果它被编译为较新的版本?