La mise à jour de Windows a causé L'arrêt du fonctionnement de MVC3 et MVC4
suis-je le seul à avoir installé une mise à jour de Windows (8.1) le 15 octobre, et MVC a soudainement cessé de fonctionner à cause de cet avertissement?
Avertissement 1 Impossible de résoudre cette référence. Impossible de localiser le système d'assemblage.Web.Mvc, Version=4.0.0.0, Culture=neutre, PublicKeyToken=31bf3856ad364e35, processorArchitecture = MSIL". Vérifiez que l'assemblage existe sur le disque. Si cette référence est requise par votre code, vous pourriez avoir des erreurs de compilation.
il semble que cette mise à jour de windows installe une nouvelle version de MVC avec le numéro de version 4.0.0.1, et supprime l'ancienne version du répertoire de fichiers de programmes.
Quelqu'un sait réparer ça sans ramper pour chaque projet?
9 réponses
la meilleure solution est de mettre à jour DLL vers la version 4.0.0.1. Essayez d'utiliser nuget:
Install-Package Microsoft.AspNet.Mvc -Version 4.0.40804 -Project <your project name>
cela mettra automatiquement à jour
<dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" /> </dependentAssembly>
vous avez juste à éditer le système de version.Web.Mvc manuellement dans:
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
nous avons dû toucher manuellement chaque .csproj pour mettre à jour la version de 4.0.0.0 à 4.0.0.1 pour faire démarrer nos constructions. Assez de la douleur.
les nouvelles références doivent ressembler à:
<Reference Include="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
avait le même problème après mise à jour:
mise à jour de sécurité pour Microsoft ASP.NET MVC 4.0 (KB2993928)
http://support.microsoft.com/kb/2993928
, Mais seulement pour un projet avec une référence au Système.Web.Mvc, non installé par paquet.
Mon collègue, qui N'avait pas installé Microsoft ASP.NET MVC 4.0 Runtime and didn't reçu la mise à jour, n'a eu aucun problème et avait toujours la référence à 4.0.0.0, pas à 4.0.0.1
J'ai changé manuellement la référence à 4.0.0. 1 , après l'enregistrement, mon collègue pouvait encore construire avec une référence à 4.0.0. 0 .
(Travaillant tous les deux sur Win7 Pro SP1, VS2013 Pro Update 3)
s'il vous Plaît voir ce blog, il est recommandé de mettre à jour correspondante de package NuGet:
, Pour citer:
le problème peut être résolu par mis en œuvre l'un des suivants solutions:
(De Préférence) Installer Microsoft.AspNet.Mvc de la galerie NuGet (cela installera une redirection de reliure dans votre web.config). Vous pouvez le faire cela provient du Gestionnaire de paquets NuGet ou de la console NuGet à L'intérieur de Visual Studio:
Install-Package Microsoft.AspNet.Mvc-Version-projet Nom du projet
MVC 4 version: 4.0.40804.0
MVC 3 version: 3.0.50813.1
mettre à jour manuellement la référence au système.Web.MVC.dll (ne pas utiliser celui du GAC).
essayez la boîte de dialogue Ajouter une référence -> assemblages -> Extensions.
voir ceci: Microsoft Asp.Net MVC Security Update MS14-059 broke my build! MS a blogué à ce sujet car il a évidemment apporté beaucoup de confusion
pour un projet web, vous devrez peut-être mettre à jour la configuration dans le web.config ainsi:
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.1"/>
</dependentAssembly>
OK,
pour moi, c'était deux simples étapes:
J'ai d'abord changé toutes les références au système.Web.Mvc de 4.0.0.0 à 4.0.0.1,
puis j'ai dû aller aux propriétés du système.Web.Mvc (peut-être parce que je l'avais supprimé et re-ajouté) et changer la copie locale à true.
J'espère que c'est utile pour quelqu'un.
vous devez changer toutes les références au système.Web.Mvc dans votre solution. Il suffit de les supprimer et d'ajouter la nouvelle version 4.0.0.1.
aussi dans les propriétés changer copy local
à true.
et sur le web.config ajouter la liaison assambly pour pointer vers la nouvelle version de mvc:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
si vous obtenez toujours la même erreur après avoir essayé @Krzysztof solution ou l'une des autres réponses ci-dessus, un travail qui pourrait fonctionner pour vous est de désinstaller MVC Runtime 4.0