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

5 Answers 5

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 "/>
Sign up to request clarification or add additional context in comments.

6 Comments

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" />
for MVC5 use version=2.0.0.0
Selecting System.Web.WebPages in References list, and changing Specific Version property to False worked for me.
@EvgenyGorb -- for MVC 3, 4 or 5 ? ... Just for everyone's benefit. thx
@TomStickel - I used it for MVC 4, but I guess it will fit to other versions too
|
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

Comments

10

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

Comments

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 !

Comments

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>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.