Dot-Net
具有不同公鑰令牌的 .Net 程序集綁定重定向
如果舊版本上的公鑰標記為空並在新版本上設置,是否可以在引用程序集的不同版本之間執行程序集綁定重定向?
例如,我有兩個程序集…
System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null和
System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35如果以下程序集綁定重定向在 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>
不,這是不可能的。程序集需要具有相同的 publicKeyToken。
bindingRedirect 標記只有 oldVersion 和 newVersion 屬性,所以無論如何都無法告訴它“null”版本。
但背後的真正原因是由於強名稱機制