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.
Avez-vous essayé avec NuGet?
Install-Package WebGrease -Version 1.5.1
ou
Install-Package WebGrease -Version 1.5.2
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.
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>
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é!
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.
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
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:
- Désinstallez Microsoft.AspNet.Web.Optimization
- 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 :)
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>
.
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.
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>
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.
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.
Voici ce que j'ai fait pour le contourner,
<runtime>
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
--- Copy this section to replace in the corrupted file.---
</assemblyBinding>
</runtime>
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