Build Errors - 'System.Web.Mvc.ModelClientValidationRule' Conflicts
Asked Answered
D

5

23

I am trying to 'build' my MVC3 web app in VS2010 however keep getting the following error:

Error 2 The type 'System.Web.Mvc.ModelClientValidationRule' exists in both 'c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll' and 'c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies\System.Web.WebPages.dll' C:\Users\brownp\Documents\Visual Studio 2010\Projects\Cab\Cab\Models\AccountModels.cs 223 28 Cab

Also, every time I open the solution, it prompts me with the following:

VS2010 error when opening solution

I install via Web Platform Installer and it installs successfully however the message reappears every time I open the solution.

Can anyone offer any guidance?

Thanks Paul

Dambro answered 14/12, 2011 at 21:37 Comment(0)
L
44

After installing MVC4 beta today, a few of my MVC 3 projects would not compile. (ModelClientValidationRule conflict) The fix was:

Edit:

ProjectName.csproj

Change

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

To

<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>
Linesman answered 4/3, 2012 at 2:26 Comment(6)
I was finally able to validate that just adding Version=1.0.0.0 is sufficient. Thus <Reference Include="System.Web.WebPages, Version=1.0.0.0" />Linesman
for MVC5 use version=2.0.0.0Cherilyncherilynn
Selecting System.Web.WebPages in References list, and changing Specific Version property to False worked for me.Glyptic
@EvgenyGorb -- for MVC 3, 4 or 5 ? ... Just for everyone's benefit. thxLinesman
@TomStickel - I used it for MVC 4, but I guess it will fit to other versions tooGlyptic
@EvgenyGorb NP , I noticed the comment with SO alerts... and since I answered this over 4 years ago I figured for the benefit of the community that I would ask you. Thx!Linesman
E
13

Ok try this solution...

  1. In the root Web.config file, add a new entry with the key webPages:Version and the value 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" />

Replace them with the following:

<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.Save the changes, close the project (.csproj) file you were editing, and then right-click the project and select Reload.

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

also try: http://www.asp.net/learn/whitepapers/mvc4-release-notes#_Toc303253815

Erbil answered 13/3, 2012 at 9:50 Comment(0)
M
10

Delete System.Web.WebPages from solution references. It is all.

Mosra answered 7/2, 2013 at 9:38 Comment(0)
V
3

The best way to avoid this conflict is-

  1. Go to solution explorer
  2. Reference
  3. Right click on System.Web.WebPages
  4. Remove

Now run your application and Enjoy !

Vue answered 30/7, 2013 at 19:14 Comment(0)
C
0

This issue, which is the same as you described in VS2010, occurred in my case in VS2015 with a newer version of MVC (V5).

Here's how I was able to fix it:

  • Update the NUGET packages to the latest version.

  • In your project, remove the references for Microsoft.AspNet.WebPages. Then, re-add reference by using the latest package (use "Browse..."):

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

  • Ensure that all projects are referencing the same assembly, if not, fix them as described above. Then, re-build the solution. In my case, it fixed the error.

Check the Web.config file, and fix settings such as:

<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>
Charie answered 11/5, 2016 at 9:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.