web-dev-qa-db-fra.com

Impossible de charger le fichier, l'assembly XXX ou l'une de ses dépendances. La définition du manifeste de l'Assemblée localisée ne correspond pas à la référence de l'Assemblée

Lorsque vous exécutez une application Asp.Net MVC localement, tout fonctionne correctement, mais lorsque l'application est déployée sur le serveur, j'obtiens cette erreur.

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)

Je viens d’ajouter récemment le framework System.Web.Optimization via NuGet, qui utilise WebGrease. 

Si je vérifie les références, ma version de WebGrease est 1.5.2.14234, ce qui est supérieur à celui qui se plaint de ne pas avoir trouvé - 1.5.1.25624.

Dans la configuration Web racine, j'ai les éléments suivants sous la balise d'exécution:

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

Si je vérifie WebGrease.dll dans le dossier bin du serveur, la version de WebGrease DLL est 1.5.2.14234. Qui pourrait avoir besoin de l’autre version 1.5.1.25624 et de la moindre solution à ce problème?

Merci beaucoup! 

13
Mark Cassar

C’est une erreur de notre part que la configuration Web racine sur le serveur ait une balise dependentAssembly incorrecte qui consiste en:

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

et pas:

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

d'où la cause de l'erreur!

20
Mark Cassar

J'ai eu la même erreur venir avec mon projet aussi. Il se trouve qu'il y avait plusieurs "XYZ-Copy.dll" dans le répertoire bin à l'origine du problème. J'ai supprimé tous les fichiers XYZ-copy.dll et cela a fonctionné.

4
LukeP

J'ai essayé d'installer la dernière version de Nuget:

 install-package WebGrease

Reconstruisez l'application deux fois et l'erreur a disparu.

j'espère que ça aidera quelqu'un!

2
Sunny Sharma

je viens de tout supprimer dans C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET\ cela fonctionne ... si vous utilisez le framework 4, essayez C:\Windows\Microsoft.NET\Framework\v4.0.30319\Fichiers ASP.NET temporaires \

2
Hassue Rana

Cela a été résolu par

1) exécution de la console du gestionnaire de packages

2) dans la console, tapez: 'Install-Package Microsoft.AspNet.Web.Optimization'

Qui a résolu toutes les dépendances incorrectes et ajouté avec succès Microsoft.AspNet.Web.Optimization au projet

1
Kris1