Mi chiedevo perché NuGet aggiunto il seguente codice per le mie applicazioni app.config
di file, dopo l'installazione del Microsoft.Bcl.Async
:Perché un "bindingRedirect" è stato aggiunto al file app.config dopo aver aggiunto il pacchetto 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>
Se rimuovo questo XML-elemento dalla configurazione, l'applicazione non funzionerà correttamente.
Per quanto ho capito, possiamo usare bindingRedirect
per far sì che l'app carichi una versione più recente o più vecchia di un assembly nel caso in cui la versione che stavamo usando durante la compilazione dell'EXE sia scomparsa.
Tuttavia sto usando esattamente la versione 2.5.19.0
, perché dovrei avere bisogno di un reindirizzamento, allora?
Perché ho bisogno di questa bindingRedirect
?
Ho una situazione simile, in cui l'assembly reindirizzato non viene utilizzato altrove, ma il bindingeredirect è ancora necessario? - oppure posso affermare che se la vecchia versione dell'assembly non è referenziata da nessuna parte allora il bindingredirect non è affatto necessario. – zinking