我刚刚安装了MVC 4 Beta,现在我的MVC 3应用程序无法编译,出现以下错误:
类型'System.Web.Mvc.ModelClientValidationRule'存在于'c:\ Program Files(x86)\ Microsoft ASP.NET \ ASP.NET MVC 3 \ Assemblies \ System.Web.Mvc.dll'和' 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 \基础设施\ PasswordStrengthAttribute.cs
看起来这已被移动到另一个程序集,因为两个程序集都在GAC中,所以它不知道使用哪个。
答案 0 :(得分:72)
今天安装MVC4测试版后,我的一些MVC 3项目无法编译。 (ModelClientValidationRule冲突)修复程序是:
编辑:
ProjectName.csproj
更改
<Reference Include="System.Web.WebPages"/>
要
<Reference Include="System.Web.WebPages, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL "/>
答案 1 :(得分:4)
好的尝试这个解决方案......
在根Web.config文件中,添加一个包含密钥webPages:Version和值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.在解决方案资源管理器中,右键单击项目名称,然后选择“卸载项目”。然后再次右键单击该名称,并选择Edit ProjectName.csproj。
3.找到以下程序集引用:
<Reference Include="System.Web.WebPages"/>
<Reference Include="System.Web.Helpers" />
用以下内容替换它们:
<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.保存更改,关闭正在编辑的项目(.csproj)文件,然后右键单击该项目并选择“重新加载”。
也尝试this
我找到了这个答案here对我来说,第二个编辑与第一个编辑相结合解决了问题。
答案 2 :(得分:2)
只需删除System.Web.WebPages的引用即可。这将成功构建您的项目。