Qual é o significado / motivo das entradas geradas em web.config> configuration> runtime> assemblyBinding?
Eu notei esta seção em meus arquivos web.config por um tempo e agora estou tentando descobrir o que exatamente é o objetivo:
<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>
Então, a primeira entrada parece dizer:
System.Web.Helpers é o nome de um assembly dependente com um token de chave pública de31bf3856ad364e35
. Redirecionar a versão 1.0.0.0 a 2.0.0.0 para a versão 2.0.0.0.
Meu melhor palpite é que isso significa que qualquer código em execução no contexto do tempo de execução do ASP.NET que depende de um assembly com o nome especificado que também tem uma versão no intervalo especificado é executado como se fosse compilado com a versão especificada com o chave pública especificada.
Isso significa que se eu tenho um projeto da web que depende de uma biblioteca de classes e essa biblioteca de classes tem uma referência a uma versão mais antiga do assembly que possui um bindingRedirect, que o código será executado como se fosse compilado na versão mais recente?