-->

是什么意思/原因在web.config中>配置>运行> assemblyBindi

2019-08-17 03:16发布

我在我一会儿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项目?

Answer 1:

这是否意味着,如果我有依赖于一个类库和类库有一个旧的版本,具有AA bindingRedirect组件的参考,该代码将执行,就好像它是针对新版本编译Web项目?

你是不是正确的(我只想说:“......就好像它是引用新版本的代码将执行”),见http://msdn.microsoft.com/en-us/library/7wd6ex19%28v=vs 0.110%29.aspx

“当你建立针对强命名程序集的特定版本.NET Framework应用程序,该应用程序使用该版本在运行时组件。但是,有时您可能希望应用程序对一个组件的较新版本上运行。 “



文章来源: What is the meaning/reason for the generated entries in web.config>configuration>runtime>assemblyBinding?