2013-10-25 13 views
13

Quando si esegue un'applicazione ASP.Net MVC localmente, tutto funziona correttamente ma quando l'applicazione viene distribuita sul server, viene visualizzato questo errore.Impossibile caricare il file o l'assembly XXX o una delle sue dipendenze. La definizione manifest dell'assembly individuato non corrisponde al riferimento all'assembly

Could not load file or assembly 'WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 

ho appena recentemente aggiunto il quadro System.Web.Optimization tramite NuGet che fa uso di WebGrease.

Se controllo i riferimenti, la mia versione di WebGrease è 1.5.2.14234 che è più alta di quella che si lamentava di non trovare - 1.5.1.25624.

All'interno della configurazione web root, ho il seguente sotto il tag runtime:

<dependentAssembly> 
     <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> 
     </dependentAssembly> 

Se posso controllare il WebGrease.dll all'interno della cartella bin sul server, la versione della DLL WebGrease è 1.5. 2,14,234 mila. Chi potrebbe richiedere l'altra versione 1.5.1.25624 e qualche idea su come risolverlo?

Grazie mille!

risposta

20

E 'stato un errore da parte nostra per cui l'attuale configurazione web root sul server ha avuto un dependentAssembly tag non corretto, che consisteva in:

<dependentAssembly> 
     <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> 
     </dependentAssembly> 

e non:

<dependentAssembly> 
     <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> 
     </dependentAssembly> 

quindi, perché l'errore era stato rilasciato!

1

ho appena eliminato tutto in C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET \ funziona ... se si utilizza il framework 4, quindi provare C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \

+0

Grazie per il tuo commento, ma come descritto nella mia risposta precedente, questo è stato risolto a causa di un errore nel file web.config come spiegato. –

+0

Di natura più generale (non associato a "WebGrease") questo errore può verificarsi se il pool di applicazioni viene avviato senza abilitare 32 bit, quindi lo si cambia in attivato. Questa risposta ha risolto il problema. –

2

ho provato a installare la versione più recente da Nuget:

install-package WebGrease 

ricostruire l'applicazione due volte e l'errore è andato via.

spero che aiuti qualcuno!

4

Ho avuto lo stesso errore anche nel mio progetto. Risulta che nella directory del mio computer c'erano diversi "XYZ-Copy.dll" che causavano il problema. Ho cancellato tutti i file XYZ-copy.dll e ha funzionato.

+0

bahhh, odio cose come questa.Ho aggiunto un progetto a un servizio di backup su cloud e ha creato un dll duplicato nella mia directory bin. Grazie per il suggerimento nella giusta direzione. –

+0

Felice di dare una mano! Questi piccoli problemi mi fanno impazzire! – LukeP

1

Questo è stato risolto da

1) l'esecuzione del Package Manager Console

2) in console, tipo: 'Install-pacchetto Microsoft.AspNet.Web.Optimization'

che ha risolto tutti i dipendenze errate e Aggiunta con successo Microsoft.AspNet.Web.Optimization al Progetto

Problemi correlati