51

をインストールした後、nuget がアプリケーションapp.configファイルに次のコードを追加した理由を知りたいと思っていましたMicrosoft.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>

この XML 要素を構成から削除すると、アプリが正しく動作しなくなります。

私が理解している限りではbindingRedirect、EXE のコンパイル時に使用していたバージョンがなくなった場合に備えて、 を使用して、新しいバージョンまたは古いバージョンのアセンブリをアプリにロードさせることができます。
しかし、私は正確に version を使用していますが2.5.19.0、なぜリダイレクトが必要なのですか?

私のdllのバージョン

なぜこれが必要なのbindingRedirectですか?

4

2 に答える 2