Por que um “bindingRedirect” é adicionado ao arquivo app.config depois de adicionar o pacote Microsoft.Bcl.Async?

Eu estava me perguntando por que o nuget adicionou o seguinte código aos meus aplicativosapp.config arquivo, depois de instalar oMicrosoft.Bcl.Async:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

Se eu remover esse elemento XML da configuração, o aplicativo não funcionará corretamente.

Tanto quanto eu entendo, podemos usar obindingRedirect para fazer com que o aplicativo carregue uma versão mais nova ou mais antiga de um assembly caso a versão que estávamos usando ao compilar o EXE tenha desaparecido.
No entanto estou usando exatamente a versão2.5.19.0, por que eu precisaria de um redirecionamento então?

Por quê eu preciso dissobindingRedirect?

questionAnswers(2)

yourAnswerToTheQuestion