Anche se i miei riferimenti sono Specific Version
set di false
, io sono sempre per l’associazione di assembly errori, perché il computer di destinazione ha una versione superiore. Come faccio a specificare la versione corrente o superiore per evitare l’errore seguente quando alcuni computer di destinazione potrebbe avere la versione 1.61.0.0 mentre altri hanno 1.62.0.0 o superiore?
System.IO.FileLoadException: Could not load file or assembly 'ServerInterface.NET, Version=1.61.0.0, Culture=neutral, PublicKeyToken=151ae431f239ddf0' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'ServerInterface.NET, Version=1.61.0.0, Culture=neutral, PublicKeyToken=151ae431f239ddf0'
È necessario aggiungere un Web.config /App.chiave di configurazione per un’associazione di reindirizzamento come (si prega di cambiare le versioni di cosa hai veramente bisogno):
Il
oldVersion
attributo imposta la gamma di versioni per il reindirizzamento. IlnewVersion
insiemi di attributi, l’esatta versione che dovrebbe reindirizzare.Se si utilizza NuGet è possibile farlo automaticamente attraverso
Add-BindingRedirect
. Ecco un articolo che lo spiegaVedi qui per più informazioni su associazione reindirizza in generale.
Guardando il documenti sembra che per essere più espliciti nell’assemblea che si carica con
newVersion
Maggiori dettagli qui. Si potrebbe trasformare il file di configurazione basata sul client?OriginaleL’autore Luke Merrett
Rinviare l’associazione in codice mi permette di utilizzare qualsiasi versione. Si sarebbe probabilmente vuole fare più il controllo di questo reindirizza tutti i tentativi falliti di ogni assemblea con lo stesso nome.
Questo è pericoloso. Se non è possibile caricare un gruppo, creare uno stack overflow. Può anche causare autofac smettere di produrre la registrazione degli errori perché non in grado di leggere le necessarie risorse. Probabilmente, può causare più problemi, anche.
OriginaleL’autore flipdoubt