web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'Assemblée 'WebGrease, Version = 1.5.1.25624, Culture = neutre, PublicKeyToken = 31bf3856ad364e35' ou l'une de ses dépendances

J'ai un projet d'api Web MVC4. lors de l'exécution du projet de service, j'obtiens une erreur 

Impossible de charger le fichier ou l'Assemblée 'WebGrease, Version = 1.5.1.25624, Culture = neutre, PublicKeyToken = 31bf3856ad364e35' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

j'ai ajouté le fichier WebGrease.dll et toujours son erreur à venir

et essayé de changer web.config

<bindingRedirect oldVersion="0.0.0.0-1.3.0.0"/>"

et

<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />

s'il vous plaît des conseils ce que je manque.

59
Jidheesh Rajan

Avez-vous essayé avec NuGet?

Install-Package WebGrease -Version 1.5.1

ou

Install-Package WebGrease -Version 1.5.2
45
Fernando Vezzali

Je sais que c'est un peu tard pour l'OP, mais j'ai rencontré le même problème en essayant le package Bootstrap 3 pour MVC 4 NuGet. Dans mon cas, cela avait un rapport avec le Microsoft.AspNet .Web.Optimization}, et a réussi à trouver une solution simple.

Essayez d’exécuter les commandes suivantes dans la console du gestionnaire de packages:

Install-Package Microsoft.AspNet.Web.Optimization
Update-Package WebGrease
Uninstall-Package Microsoft.AspNet.Web.Optimization
Uninstall-Package WebGrease
Install-Package Microsoft.AspNet.Web.Optimization
Update-Package WebGrease

Les deux premières lignes n'ont eu aucun effet pour moi car ces paquets étaient déjà installés et mis à jour par le paquet Bootstrap 3 pour MVC 4, mais je les ai quand même exécutés, puis tout a été compilé et très bien.

80
c0y0teX

Cette erreur est due au fait que Microsoft.AspNet.Web.Optimization 1.1.3 référence en interne WebGrease 1.5.1.25624 même si le package Nuget, lui-même, a une dépendance sur WebGrease 1.5.2.14234. Quelqu'un a clairement bousillé lors de la création du paquet Nuget.

Pour résoudre ce problème, ajoutez cette liaison Assembly dans votre Web.Config.

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

Pour moi, aucun des scénarios ci-dessus n'a fonctionné. 

Après avoir essayé pendant deux jours, j'ai finalement trouvé la solution. 

Ce que j'ai fait était, j'ai désinstallé Microsoft.AspNet.Web.Optimization et WebGrease les deux.

Je savais que cette optimisation Assembly faisait référence en interne à WebGrease 1.5.1. J'ai donc choisi une version d'optimisation qui ne fait pas référence à WebGrease 1.5.1.

J'ai exécuté les commandes suivantes afin de tout faire fonctionner.

Uninstall-Package Microsoft.AspNet.Web.Optimization
Uninstall-Package WebGrease
Install-Package Microsoft.AspNet.Web.Optimization -Version 1.1.0

J'espère que je pourrai être une bonne aide pour quelqu'un pour qui la solution ci-dessus ne fonctionne pas. 

À votre santé!

14
Parth Jani

Le problème que j'ai observé correspondait étroitement à ce que Jidheesh Rajan a mentionné. Toutefois, la mise à jour du package à partir du gestionnaire de packages Nuget (sans spécifier de version) n'a pas résolu le problème. Voici ce que je devais faire pour résoudre le problème. (Essentiellement, j'ai explicitement mis à jour WebGrease à la version 1.6)

Depuis la console du gestionnaire de packages dans Visual Studio, mettez explicitement à jour WebGrease vers la version 1.6. voici la commande. 

Install-Package WebGrease -Version 1.6

La sortie devrait être 

Removing 'WebGrease 1.5.2' from {project name}

Ajout de 'WebGrease 1.6.0' à {nom du projet} Ajout réussi de 'WebGrease 1.6.0' à {nom du projet} Désinstallation de 'WebGrease 1.5.2' . Désinstallé avec succès 'WebGrease 1.5.2' .

Cela a fini par mettre à jour web.config avec 

    assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /
    bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" 

Cela a également entraîné la suppression d'une ligne du fichier csproj.

<WebGreaseLibPath>..\packages\WebGrease.1.5.2\lib</WebGreaseLibPath>

et une mise à jour de ce noeud dans le fichier csproj

<Reference Include="WebGrease, Version=1.5.2.14234, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\WebGrease.1.5.2\lib\WebGrease.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>

pour ça

<Reference Include="WebGrease, Version=1.6.5135.21930, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\WebGrease.1.6.0\lib\WebGrease.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>

N'oubliez pas que je n'ai pas eu de problème sur mon ordinateur local, mais uniquement sur un serveur Web de scène. Je voulais faire de mon mieux pour résoudre le problème sans mettre à jour le package, mais c'était le seul correctif que j'avais. 

7
joey

J'ai essayé beaucoup de choses, mais cela fonctionnait parfois pour moi. Webgrease Les problèmes de montage, parfois, les problèmes de Web. Cela a fonctionné pour moi avec Microsoft.AspNet.Web.Optimization 1.1.3

Update-Package WebGrease -Version 1.6
5
Ali Umair

Lorsque vous redirigez Webgrease, assurez-vous de ne pas avoir d'attribut applyTo sur votre élément assemblyBinding. Pour moi je l'ai enlevé complètement.

 enter image description here

4
kenjamin

Oldie mais goldie ...

Je travaillais sur un projet MVC 5 dans Visual Studio 2013 et j'ai eu le même problème. Nous utilisions Visual SVN pour la gestion des versions et j'étais le seul membre de mon équipe à avoir ce problème.

La seule chose qui a fonctionné pour moi était la suivante:

  1. Désinstallez Microsoft.AspNet.Web.Optimization
  2. Dans la commande Nuget Invite exécuter: package d'installation Microsoft.AspNet.Web.Optimization -Version 1.0.0

Cela installera une version plus ancienne de Web.Optimization. Le projet faisait initialement référence à la version 1.1.0. Le problème ne vient pas de WebGrease, mais du System.Web.Optimization.dll qui fait référence à une ancienne version inexistante de WebGrease.

Lorsque j'ai exécuté le projet, cela a fonctionné, mais je voulais utiliser la même version du package que le reste de l'équipe. Donc, j'ai essayé de mettre à jour mais ... l'erreur est revenue ...

Après cela, j'ai supprimé (encore une fois) le projet et je l'ai repris du SVN. À ma grande surprise, cela a commencé à fonctionner ... Le fait est que j'avais complètement supprimé le projet et l'avais pris plusieurs fois auparavant dans SVN. J'ai même pris les dll d'un collègue parce que je pensais que les fichiers corrompus de NuGet étaient peut-être corrompus, mais en vain. 

J'espère que cela aidera quelqu'un, un jour .. avec Visual Studio 2016 et MVC 8 :)

4
Alex Albu

J'ai utilisé "Install-Package Microsoft.AspNet.Web.Optimization" (la version actuelle est 1.1.3) pour starup web-project, qui n'était pas sélectionné par défaut dans la console NuGet. 

Mais NuGet a créé un nouveau fichier app.config même si web.config est devrait être mis à jour.

Pour moi, cela a fonctionné pour déplacer l'élément WebGrease dependAssembly de app.config à web.config's<runtime><assemblyBinding>...</assemblyBinding></runtime>.

2
Anton Lyhin

Comme je ne pouvais pas désinstaller à l'aide de la console du gestionnaire de paquets, je suis allé manuellement à packages.config et commenter l'ancienne version. 

2
user3557878

J'ai eu ce problème lors d'un déploiement.

J'ai copié WebGrease.dll en production, mais j'ai aussi oublié de mettre à jour le fichier Web.Config.

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>
1
tno2007

Alreasy a résolu cette erreur. La situation était plus simple que je pensais. Lorsque vous installez à partir de nuget la nouvelle version de System.Web.Optimization, elle est référencée 

// Références: WebGrease, Version = 1.5.1.25624, Culture = neutre, PublicKeyToken = 31bf3856ad364e35

En même temps, j'ai WebGrease version 1.5.2.14234. Projet en cours d'exécution, nous avons cette erreur: Impossible de charger le fichier ou l'assembly WebGrease, Version = 1.5.1.25624

Soo, j'ai essayé de vérifier cette version sur Nuget et j'ai été surpris, mais ce n'est pas le cas ... mais quand j'ai créé un nouveau projet avec VS, je l'ai compris. Pour pirater cette erreur, j'essaie de l'installer dans GAC ... mais gac me dit que cette librairie n'est pas abonnée. Mise à niveau vers System.Web.Optimization Version = 1.1.0.0, où référence est:

// Références: WebGrease, Version = 1.3.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35

et 1.3.0.0 est fortement souscrit - m'a aidé. Ça marche. Après la mise à niveau de webgrease, je l’ai version = 1.6.5135.21930 et cela a fonctionné parfaitement. 

En conclusion, j’ai une opinion, que cette erreur (Impossible de charger le fichier ou l’Assembly 'WebGrease, Version = 1.5.1.25624) était due à la libération System.Web.Optimization qui est référencée à la version dll désinscrite de webgrease.

1
faradzen

Les autres réponses n'ont pas résolu le problème pour moi. Nous ajoutons un projet d'API MVC 5 plus récent et il ne jouait pas à Nice avec les API plus anciennes de MVC 2. Après avoir exécuté les mises à jour du paquet, j'obtenais l'erreur mentionnée. La solution pour moi était de supprimer les références WebGrease ajoutées par NuGet dans les fichiers web.config des projets incriminés.

Pour résoudre: .__ Ouvrez le fichier Web.config du ou des projets à l'origine de l'exception et supprimez ou commentez la dépendance ajoutée pour WebGrease.

1
rjchicago

Voici ce que j'ai fait pour le contourner,

  1. J'ai enregistré une copie du fichier Web.config de mon projet actuel (corrompu) dans "Corrupted-Web.Config". et fermez la solution du projet.
  2. Création d'une nouvelle application avec le même type de projet que mon projet. l'a appelé ProjTemp.
  3. Enregistrer et exécuter le "PorjTemp", puis enregistrez une copie du Web.Config à "OrigTemp_Web.config"
  4. Fermez les fichiers Web.config.
  5. Dans "ProjTemp", ouvrez Outils -> "Gestionnaire de paquets NuGet" -> "Gérer les packages NuGet pour les solutions" ---> Sélectionnez cette option pour mettre à jour tous les packages installés. 6 Maintenant, ouvrez le fichier Web.config nouvellement mis à jour . Copiez les informations sur le "Mise à jour".

<runtime>
        <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">  
             --- Copy this section to replace in the corrupted file.---
       </assemblyBinding>
</runtime>

  1. Enregistrez votre projet. Reconstruire et exécuter. J'espère que cela aidera! ....

Voici le corrigé par exemple, VS2015.


<runtime>
           <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
                 <dependentAssembly>
                        <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
                        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
                 </dependentAssembly>
                <dependentAssembly>
                        <assemblyIdentity name="WebGrease" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
              </dependentAssembly>
              <dependentAssembly>
                        <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" />
                        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /
              </dependentAssembly>
              <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" /
                </dependentAssembly>
                <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin.Security.OAuth" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
                </dependentAssembly>
                <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin.Security.Cookies" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                        <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
                 </dependentAssembly>
                 <dependentAssembly>
                        <assemblyIdentity name="Microsoft.Owin.Security" culture="neutral" publicKeyToken="31bf3856ad364e35" />
                         <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
                  </dependentAssembly>
                  <dependentAssembly>
                         <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
                        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
                   </dependentAssembly>
          </assemblyBinding>
  </runtime>

c'est ce que j'ai fait pour résoudre le problème, Solution sur Github Sami, Oweis 4 Computer

0
Sami