67 votes

Impossible de charger le fichier ou l'assemblage "System.Web.WebPages.Razor, Version=2.0.0.0".

Je viens de mettre à niveau des paquets dans un projet MVC 3 (ASP.net 4), et je reçois maintenant le message d'erreur suivant lorsque j'accède à une page de ce projet :

Erreur de serveur dans l'application '/MyApplication'.

Impossible de charger le fichier ou l'assemblage 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou une de ses dépendances. La définition du manifeste de l'assemblage localisé ne correspond pas à la référence de l'assemblage. (Exception de HRESULT : 0x80131040) Description : Une exception non gérée s'est produite pendant l l'exécution de la demande Web actuelle. Veuillez consulter la trace de la pile pour obtenir plus d'informations sur l'erreur et sur son origine dans le code.

Détails de l'exception : System.IO.FileLoadException : Impossible de charger le fichier ou assemblage 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou l'une de ses dépendances. La définition du manifeste de l'assemblage situé à l'adresse l'assemblage localisé ne correspond pas à la référence de l'assemblage. référence. (Exception de HRESULT : 0x80131040)

Erreur de source :

Une exception non gérée a été générée pendant l'exécution de la demande Web actuelle. Les informations concernant l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

Trace de chargement de l'assemblage : Les informations suivantes peuvent être utiles pour déterminer pourquoi l'assemblage 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutre, PublicKeyToken=31bf3856ad364e35' n'a pas pu être chargé.

\=== Informations sur l'état de préliaison === LOG : Utilisateur = IIS APPPOOL \ASP.NET v4.0 LOG : DisplayName = System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 (Entièrement spécifié) LOG : Appbase = file:///C:/.../ LOG : Initial PrivatePath = C :... \bin Assemblage appelant : Microsoft.Web.Helpers, Version=2.0.0.0, Culture=neutre, PublicKeyToken=31bf3856ad364e35. === LOG : Ce bind démarre dans le contexte de chargement par défaut. LOG : Utilisation du fichier de configuration de l'application : C :... \web.config LOG : Utilisation du fichier de configuration de l'hôte d'hôte : C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config LOG : Utilisation du fichier de configuration de la machine à partir de C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config. LOG : Référence post-politique : System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutre, PublicKeyToken=31bf3856ad364e35 LOG : Tentative de téléchargement de la nouvelle URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary Fichiers ASP.NET/.../cb62a7b2/327a0353/System.Web.WebPages.Razor.DLL. LOG : Tentative de téléchargement de la nouvelle URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/.../cb62a7b2/327a0353/System.Web.WebPages.Razor/System.Web.WebPages.Razor.DLL. LOG : Tentative de téléchargement de la nouvelle URL file:///C:/LeGroupeHtmSVN/.../UpDir.Web/bin/System.Web.WebPages.Razor.DLL. WRN : La comparaison du nom de l'assemblage a donné lieu à une discordance : Major Version ERR : Impossible de terminer la configuration de l'assemblage (hr = 0x80131040). Sondage terminé.

Stack Trace :

[FileLoadException : Impossible de charger le fichier ou l'assemblage System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou l'une de ses dépendances. La définition du manifeste de l'assemblage situé à l'adresse l'assemblage localisé ne correspond pas à la référence de l'assemblage. référence. (Exception de HRESULT : 0x80131040)]
Microsoft.Web.Helpers.PreApplicationStartCode.Start() +0

[InvalidOperationException : L'initialisation du démarrage de la préapplication Start sur le type Microsoft.Web.Helpers.PreApplicationStartCode a déclenché une exception avec le message d'erreur suivant : Could not load fichier ou l'assemblage 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou une de ses dépendances. dépendances. La définition du manifeste de l'assemblage localisé ne correspond pas à la référence de l'assemblage. (Exception de HRESULT : 0x80131040).
System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 méthodes) +11711966
System.Web.Compilation.BuildManager.CallPreStartInitMethods() +465
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1167

[HttpException (0x80004005) : L'initialisation du démarrage de la préapplication méthode Start sur le type Microsoft.Web.Helpers.PreApplicationStartCode a généré une exception avec le message d'erreur suivant : Impossible de charger fichier ou l'assemblage 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou une de ses dépendances. dépendances. La définition du manifeste de l'assemblage localisé ne correspond pas à la référence de l'assemblage. (Exception de HRESULT : 0x80131040).
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +11700896 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +4869125

-------------------------------------------------------------------------------- Version Information: Microsoft .NET Framework Version:4.0.30319 ; Version ASP.NET : 4.0.30319.272

Dans mon fichier web.config, et dans mon application, je fais référence à System.Web.WebPages.Razor v1.0.0.0 :

  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.0.0" />
  </dependentAssembly>

Je ne sais même pas si je peux utiliser System.Web.WebPages.Razor v2.0.0.0 avec .Net 4.

Maintenant, comment puis-je trouver ce qui fait référence à System.Web.WebPages.Razor v2.0.0.0 ?

0 votes

Cela peut aussi causer le problème MSB3277 : Des conflits entre différentes versions d'un même assemblage dépendant ont été découverts et n'ont pas pu être résolus.

69voto

Mohamed Emad Points 91

C'est très simple. Dans la console du gestionnaire de paquets Nuget :

Mettre à jour le paquet Microsoft.AspNet.Mvc -Reinstaller

1 votes

Cela m'est aussi arrivé. J'ai 2 branches du même projet dans git. L'une est constituée de webforms avec .NET MVC 5 ajouté et l'autre est constituée de simples webforms. Lorsque je passe, dans Visual Studio 2015, des branches des webforms uniquement à la version avec .NET MVC, j'obtiens la même erreur. Cette réponse a fonctionné pour moi mais j'ai dû redémarrez d'abord Visual Studio.

0 votes

J'ai ce problème dans le webapi 2 parce que j'ai ajouté le contrôleur mvc par erreur puis les problèmes ont commencé après que j'ai supprimé les références, donc il suffit de désinstaller le paquet Microsoft.AspNet.Mvc pour résoudre mon problème.

2 votes

Dans mon cas, cette méthode a réinstallé Oauth et un tas d'autres éléments superflus, mais n'a pas résolu le problème.

52voto

Diganta Kumar Points 1467

Ce problème a commencé lorsque j'ai effectué la fonction "Supprimer les références inutilisées". Le site web fonctionnait toujours sur ma machine locale, mais ne fonctionnait pas sur le serveur après la publication.

Remove unused references

J'ai résolu ce problème en faisant ce qui suit,

  1. Ouvrez la "Console du gestionnaire de paquets" dans Visual Studio.
  2. Désinstaller le paquetage Microsoft.AspNet.Mvc
  3. Installer le paquet Microsoft.AspNet.Mvc

27 votes

Cliquer sur Supprimer les références inutilisées, c'est comme utiliser votre main pour retirer une lame de rasoir du broyeur de votre évier de cuisine... Vraiment dangereux.

0 votes

@cjbarth Je sauvegarderais certainement mon projet en premier.

12 votes

Ne touchez jamais, jamais à "Supprimer les références inutilisées". C'est diabolique et ne fonctionne jamais, jamais comme annoncé. C'est un suicide de codage.

30voto

Darin Dimitrov Points 528142

comment trouver ce qui fait référence à System.Web.WebPages.Razor v2.0.0.0 ?

Lisez simplement la trace de votre exception :

Calling assembly : Microsoft.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

Il semble donc que vous utilisiez le Microsoft.Web.Helpers qui dépend à son tour de System.Web.WebPages.Razor, Version=2.0.0.0 .

2 votes

En fait, il repose sur System.Web.WebPages.Razor v2.0.0.0 qui n'est qu'au stade de Release Candidate, et si je l'installe, il casse mon application. Donc la solution pour moi maintenant sera de revenir à la version précédente de Microsoft.Web.Helpers.

1 votes

Je n'arrive toujours pas à le faire fonctionner. J'ai cherché dans toute la solution TOUTES les instances de 2.0.0.0 et je n'ai rien trouvé ! Il n'y a pas une seule référence à une quelconque assemblée contenant un 2, où que ce soit dans ma solution, sans parler de System.Web.WebPages.Razor. J'ai également vérifié le numéro de version réel de tous les assemblages de l'espace de noms System.Web.WebPages et ils sont tous 3.0. 1. J'ai désinstallé le paquet MVC de Nuget et je l'ai réinstallé. 2. J'ai supprimé les éléments assemblyBinding de Web.config. 3. Nettoyé/reconstruit la solution. 4. Déchargement de la solution et recherche d'éventuelles références dans le fichier .proj.

0 votes

Ami, avez-vous vérifié le web.config ? J'étais assez frustré récemment et j'ai trouvé le problème dans le web.config.

8voto

user1069733 Points 147

Après beaucoup de douleur, de recherche sur Internet et d'arrachage de cheveux, j'ai fini par désinstaller mvc 4 en utilisant nuget, en supprimant toutes les références à mvc, razor et infrastructure du web config, en supprimant les dlls du dossier bin - puis en utilisant nuget pour tout réinstaller. Cela a pris moins de temps que d'essayer de comprendre pourquoi les dlls ne correspondaient pas.

0 votes

Cela a résolu le problème parfaitement et facilement, merci. Après, MVC 4 fonctionne côte à côte avec les anciennes versions.

7voto

qub1n Points 817

Dans ASP.NET MVC 4, cet espace de nom n'est pas System.Web.WebPages.Razor, mais System.Web.Razor.

Cela a marché pour moi, changez votre web.config.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X