web-dev-qa-db-fra.com

Erreurs de construction - Conflits 'System.Web.Mvc.ModelClientValidationRule'

J'essaie de "construire" mon application Web MVC3 dans VS2010, mais continue de recevoir l'erreur suivante:

Erreur 2 Le type 'System.Web.Mvc.ModelClientValidationRule' existe dans 'c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll' et 'c :\Program Files (x86)\Pages Web Microsoft ASP.NET\ASP.NET\v2.0\Assemblies\System.Web.WebPages.dll 'C:\Utilisateurs\brownp\Documents\Visual Studio 2010\Projects\Cab\Cabine\Modèles\AccountModels.cs 223 28 Cabine

De plus, à chaque fois que j'ouvre la solution, les informations suivantes s'affichent:

VS2010 error when opening solution

J'installe via Web Platform Installer et il s'installe avec succès, mais le message réapparaît chaque fois que j'ouvre la solution.

Quelqu'un peut-il offrir des conseils?

Merci paul

23
Paul Brown

Après avoir installé MVC4 beta aujourd'hui, quelques-uns de mes projets MVC 3 ne seraient pas compilés. (Conflit ModelClientValidationRule) Le correctif était:

Modifier:

ProjectName.csproj

Changement 

<Reference Include="System.Web.WebPages"/> 

À

<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>
44
Tom Stickel

Ok essayez cette solution ...

  1. Dans le fichier Web.config racine, ajoutez une nouvelle entrée avec la clé webPages: Version et la valeur 1.0.0.0.

    <appSettings>
    <add key="webpages:Version" value="1.0.0.0"/>
    <add key="webpages:Version" value="1.0.0.0"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    </appSettings>
    

2.In Solution Explorer, right-click the project name and then select Unload Project. Then right-click the name again and select Edit ProjectName.csproj. 

3.Locate the following Assembly references:

    <Reference Include="System.Web.WebPages"/>
    <Reference Include="System.Web.Helpers" />

Remplacez-les par les suivants:

<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>
<Reference Include="System.Web.Helpers, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>

4. Enregistrez les modifications, fermez le fichier de projet (.csproj) que vous étiez en train de modifier, puis cliquez avec le bouton droit de la souris sur le projet et sélectionnez Recharger.

REFERENCE: http://forums.asp.net/t/1723108.aspx/1

essayez aussi: http://www.asp.net/learn/whitepapers/mvc4-release-notes#_Toc303253815

13
bot

Supprimer System.Web.WebPages des références de solution. C'est tout.

10
Maxim Yefremov

Le meilleur moyen d'éviter ce conflit est-

  1. Aller à la solution Explorer
  2. Référence
  3. Faites un clic droit sur System.Web.WebPages
  4. Retirer

Maintenant, lancez votre application et profitez-en!

3
Rakesh

Ce problème, identique à celui décrit dans VS2010, s'est produit dans mon cas, dans VS2015, avec une version plus récente de MVC (V5).

Voici comment j'ai pu résoudre ce problème:

  • Mettez à jour les packages NUGET vers la dernière version.

  • Dans votre projet, supprimez les références pour Microsoft.AspNet.WebPages. Ensuite, rajoutez une référence en utilisant le dernier paquet (utilisez "Parcourir ..."):

    C:\Program Files (x86)\Pages Web ASP.NET\ASP.NET Web\v2.0\Packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40

  • Assurez-vous que tous les projets font référence au même assemblage. Sinon, corrigez-les comme décrit ci-dessus. Ensuite, reconstruisez la solution. Dans mon cas, l'erreur a été corrigée.

Vérifiez le fichier Web.config et corrigez les paramètres tels que:

<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="true" />
...
<runtime>
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </dependentAssembly>
0
Matt