41

I just installed the MVC 4 Beta now my MVC 3 application does not compile with the following error:

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\michaeljo\Documents\src\patientgive\Phc.Mvc\Infrastructure\PasswordStrengthAttribute.cs

It would appear this has been moved to a different assembly and since both assemblies are in the GAC it does not know which to use.

Rudi Visser
  • 21,350
  • 5
  • 71
  • 97
Mike
  • 1,405
  • 1
  • 17
  • 27

3 Answers3

72

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 "/>
Tom Stickel
  • 19,633
  • 6
  • 111
  • 113
4

Ok try this solution...

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

also try this

I Found this answer here for me the second edit combined with the first solved the problem.

Community
  • 1
  • 1
rkeet
  • 3,406
  • 2
  • 23
  • 49
2

Just remove the reference of System.Web.WebPages. This will build your project successfully.

BenMorel
  • 34,448
  • 50
  • 182
  • 322
Usman Younas
  • 1,323
  • 15
  • 21