web-dev-qa-db-fra.com

System.Web.Mvc ne fonctionne pas comme prévu après Windows Update

Après la mise à jour d'hier de Windows Update, il semble que j'ai des problèmes pour construire mes projets.

Related Windows Updates could be:
ASP.NET MVC 2.0: KB2993939
ASP.NET MVC 3.0: KB2993937
ASP.NET MVC 4.0: KB2993928
ASP.NET MVC 5.0: KB2992080
ASP.NET MVC 5.1: KB2994397

System.Web.Mvc-related errors

Ces erreurs semblent toutes être liées à l'espace de noms System.Web.Mvc que j'ai vérifié; il est toujours associé au projet sous References. Qu'est-ce qui aurait pu mal se passer avec mon projet MVC lors de la mise à jour de Windows et comment devrais-je remédier au problème?

Voici le journal qui indique les mises à jour administrées aujourd'hui:

16/10/2014's Windows Update

53
matt

Les mises à jour récentes ont des numéros de version incrémentés

3.0.0.0 -> 3.0.0.1 et 4.0.0.0 -> 4.0.0.1

J'ai dû supprimer la référence et rajouter de nouveau (System.Web.Mvc se trouve dans Assemblées> Les extensions appartiennent à la boîte de dialogue Ajouter une référence)

34
mth

J'ai le même problème aujourd'hui après la mise à jour de Windows . Voici ma solution.

Install-Package Microsoft.AspNet.Mvc -Version 5.2.0.0 -Project PROJECTNAME

Aussi, vous pouvez essayer d'utiliser ce code peut-être que cela aide.

Uninstall-Package Microsoft.AspNet.Mvc -Force

Bonne chance.

10
Murat Özbayraktar

Il y a deux façons de résoudre ce problème:

Option 1: Ajouter Microsoft.AspNet.Mvc en utilisant NuGet

Utilisez NuGet pour ajouter la dernière révision de la version de MVC dont vous dépendez à votre projet. Microsft recommande cette approche.

Option 2: Mettre à jour la référence d'assemblage

Si vous ajoutez une nouvelle référence assymbly à votre projet, vous constaterez que les assemblys System.Web.Mvc portent désormais la version x.0.0.1.


Source: http://blogs.msdn.com/b/webdev/archive/2014/10/16/Microsoft-asp-net-mvc-security-update-broke-my-build.aspx

Je suggérerais de ne pas tenter carrément de réinstaller MVC. Bien que cela ait fonctionné pour moi à la fin, vous aurez des problèmes avec NuGet qui est fourni avec le programme d'installation de MVC.

Vous devez désinstaller NuGet avant de réinstaller MVC, car NuGet étant toujours présent, le programme d'installation de MVC refuse de l'installer ou échoue.

En outre, je ne vois pas pourquoi la réinstallation de MVC empêchera Windows Update d’appliquer à nouveau la mise à jour après la réinstallation de MVC.

5
Christ A

Lorsque le correctif a été incrémenté, le numéro de version est passé de (pour MVC4, il est passé de 4.0.0.0 à 4.0.0.1), le chemin de référence dans les fichiers de projet doit être modifié:

<Reference Include="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <Private>True</Private>
  <HintPath>..\bin\System.Web.Mvc.dll</HintPath>
</Reference>

à

<Reference Include="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\bin\System.Web.Mvc.dll</HintPath>
</Reference>

Évidemment, ajustez le chemin de repère comme il convient et apportez des modifications similaires à d'autres versions de MVC.

1
JonAlb

Ce problème était présent pour moi. Cependant, le correctif était beaucoup plus simplifié que l’utilisation de nuget pour corriger ou effectuer des mises à jour de web.config. Mon problème a été résolu en mettant à jour manuellement le texte dans {NomProjet} .csproj à partir de

Référence Include = "System.Web.Mvc, Version = 3.0.0.1 , Culture = neutre, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL"

à 

Référence Include = "System.Web.Mvc, Version = 3.0.0.0 , Culture = neutre, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL" , Archiver les modifications et exécuter une génération dans l'agent de génération machine, qui, pour moi, était TeamCity. 

Même si cela provoquait des erreurs de génération localement, les erreurs de génération Contrôle de source/Team City ont été résolues. 

Je me rends compte que cela ne me permet pas de construire localement, sans avoir à modifier le fichier csproj. Cependant, après avoir archivé les modifications comme je l'ai fait ci-dessus (en les modifiant de 3.0.0.1 à 3.0.0.0), je peux mettre à jour le projet localement pour qu'il utilise la nouvelle version (3.0.0.1) et ne pas simplement enregistrer les modifications apportées à csproj. . J'imagine que quelqu'un peut avoir un scénario similaire. 

0
joey

J'ai eu le même problème récemment.

Après Windows Update - mon projet dans Visual Studio contenait soudainement plus de 500 erreurs - toutes liées à system.web.mvc

J'ai donc supprimé la référence et l'ajoutée de nouveau - trouvée dans C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies

Great - projet compile.

Placez-le sur le site - obtenez "Impossible de charger un ou plusieurs des types demandés. Récupérez la propriété LoaderExceptions pour plus d'informations"

Après beaucoup de bricolage, je suis allé sur le site, j'ai téléchargé la version de celui-ci - référencé - cela a fonctionné sur mon ordinateur portable ET sur le site

phew!!!!!!!

0
user2967049

Essayez d’installer/réparer ASP.NET MVC en utilisant les dernières versions de MSI packages disponibles à partir de ici .

Si vous utilisez bindingRedirect dans web.config, il pourrait être nécessaire (cela n'était pas nécessaire dans mes projets) de mettre à jour les sections également. Voir la réponse . Cela n’aide toujours pas, je recommanderais d’examiner les fichiers autres web.config de votre projet, comme ~/Views/web.config par exemple.

0
Oleg

J'ai essayé la solution de mh28 qui proposait ce qui suit:

Les mises à jour récentes ont des numéros de version incrémentés

3.0.0.0 -> 3.0.0.1 et 4.0.0.0 -> 4.0.0.1

J'ai dû supprimer la référence et rajouter de nouveau (System.Web.Mvc se trouve dans Assemblies> Les extensions appartiennent à la boîte de dialogue Ajouter une référence).

En plus de cela, il a également été suggéré que je lance un Find and Replace dans tout mon domaine d'intérêt; J'ai essayé cela, mais j'ai échoué. On dirait que Rechercher et remplacer ne s'applique pas aux fichiers .csproj.

Ce que j'ai ensuite fait est de trouver un outil de remplacement de texte (voir Ecobyte Replace Text ) et d’exécuter le programme en utilisant les paramètres suivants:

Ecobyte Replace Text settings

Tous mes projets ont été construits comme d'habitude par la suite, et je ne constate aucun effet secondaire (bien que je n'ai apporté aucune modification aux fichiers web.config). Je ne suis pas sûr (et je ne pense pas) que ce soit la meilleure solution et je ne pense pas qu'il s'agisse d'une solution miracle à tous les problèmes System.Web.Mvc concernés par la mise à jour Windows. Cela serait utile pour des cas spécifiques où il y a beaucoup de projets à renvoyer.

0
matt

Réinstallez l'assemblage MVC

lien de téléchargement: http://www.Microsoft.com/en-US/download/details.aspx?id=30683

0
TeYoU

Nous avons le meme probleme.
Microsoft a changé la version de 3.0.0.0 à 3.0.0.1
J'imagine que c'est la raison pour laquelle Visual Studio n'a pas trouvé la référence, car le paramètre standard est "Utiliser une version spécifique - true" .
Dans mon cas, je ne peux pas modifier le paramètre sur false, car j'utilise Mvc4 sur le même ordinateur et il utiliserait automatiquement la version 4 dll.

Une solution consiste à supprimer la référence de projet de System.Web.Mvc.dll et à l'ajouter à nouveau. Ensuite, VS utilisera la version 3.0.0.1-DLL comme référence.

0
professor.nat