Was ist die Bedeutung / der Grund für die generierten Einträge in web.config> configuration> runtime> assemblyBinding?

Ich habe diesen Abschnitt in meinen web.config-Dateien für eine Weile bemerkt und versuche jetzt herauszufinden, was genau der Zweck ist:

  <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>

Der erste Eintrag scheint also zu sagen:

System.Web.Helpers ist der Name einer abhängigen Assembly mit einem öffentlichen Schlüsseltoken von31bf3856ad364e35. Leiten Sie Version 1.0.0.0 durch 2.0.0.0 zu Version 2.0.0.0 um.

Ich vermute, dass es sich um jeden Code handelt, der im Kontext der ASP.NET-Laufzeit ausgeführt wird und von einer Assembly mit dem angegebenen Namen abhängt, die auch eine Version im angegebenen Bereich ausführt, als ob sie mit der angegebenen Version mit dem kompiliert worden wäre angegebener öffentlicher Schlüssel.

Bedeutet dies, dass, wenn ich ein Webprojekt habe, das von einer Klassenbibliothek abhängt und diese Klassenbibliothek einen Verweis auf eine ältere Version der Assembly mit einem bindingRedirect enthält, der Code so ausgeführt wird, als wäre er mit der neueren Version kompiliert worden?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage