两个dll中都存在“ModelClientValidationRule”类型

时间:2013-02-05 14:41:41

标签: asp.net asp.net-mvc asp.net-mvc-3 visual-studio-2010 visual-studio-2012

我下载了example written in asp.net mvc3 visual studio 2010

的源代码

visual studio 2012 打开解决方案文件。它将源代码转换为2012并打开解决方案。

当我构建解决方案时出错:

  

错误1存在类型'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:\ studyCode \ MVCDemo-Part12 \ MVCDemo-Part12 \ MVCDemo \ Attributes \ Validation \ EqualAttribute.cs 54 28 MVCDemo

4 个答案:

答案 0 :(得分:41)

只需从解决方案参考

中删除 System.Web.WebPages 即可

答案 1 :(得分:5)

这个答案也可以解决您的问题:

  1. 在根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. 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" />
    

    用以下内容替换它们:

    <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)文件,然后右键单击该项目并选择“重新加载”。

    参考:http://forums.asp.net/t/1723108.aspx/1

    也尝试:http://www.asp.net/learn/whitepapers/mvc4-release-notes#_Toc303253815

    或者您也可以尝试

    编辑:

    ProjectName.csproj
    

    更改

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

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

    注意:可能重复QUESTION

答案 2 :(得分:0)

右键单击VS2010中的项目名称。 单击“添加可部署的依赖项”。 重建

答案 3 :(得分:0)

http://www.asp.net/whitepapers/mvc4-release-notes

从MVC 3升级到MVC 4时,请参阅此链接,指出已知错误:

按照步骤操作,您应该在几分钟内启动并运行。

仅供参考 - 如果您从网上下载了一个zip文件,请右键单击文件,单击属性,然后在解压缩之前选择“取消阻止”,否则您会感到很痛苦。

我添加了 Notes - 其余部分来自上面引用的网站,从MVC3升级到4时出现已知错误:

*** 自动升级 ** * 将ASP.NET MVC 3项目升级到ASP.NET MVC 4 ASP.NET MVC 4可以在同一台计算机上与ASP.NET MVC 3并行安装,这使您可以灵活地选择何时将ASP.NET MVC 3应用程序升级到ASP.NET MVC 4。

最简单的升级方法是创建一个新的ASP.NET MVC 4项目,并将现有MVC 3项目中的所有视图,控制器,代码和内容文件复制到新项目中,然后更新程序集引用。匹配任何非MVC模板的新项目包括您正在使用的集合。如果您对MVC 3项目中的Web.config文件进行了更改,则还必须将这些更改合并到MVC 4项目中的Web.config文件中。

*** 手动升级 ** * *** 要手动将现有ASP.NET MVC 3应用程序升级到版本4,请执行以下操作:

在项目的所有Web.config文件中(项目的根目录中有一个,Views文件夹中有一个,项目中每个区域的Views文件夹中有一个),请替换以下文本的每个实例(注意:在使用Visual Studio 2012创建的项目中找不到System.Web.WebPages,Version = 1.0.0.0):     System.Web.Mvc,Version = 3.0.0.0     System.Web.WebPages,Version = 1.0.0.0     System.Web.Helpers,Version = 1.0.0.0     System.Web.WebPages.Razor,Version = 1.0.0.0

带有以下相应文字:

System.Web.Mvc, Version=4.0.0.0
System.Web.WebPages, Version=2.0.0.0
System.Web.Helpers, Version=2.0.0.0
System.Web.WebPages.Razor, Version=2.0.0.0

注意 - “网页:版本”根本不在我的设置中...我只添加了“PreserveLoginUrl”行*

在根Web.config文件中,将webPages:Version元素更新为“2.0.0.0”并添加一个值为“true”的新PreserveLoginUrl键:                        

在Solution Explorer中,右键单击References并选择Manage NuGet Packages。在左侧窗格中,选择Online \ NuGet官方软件包源,然后更新以下内容:    ASP.NET MVC 4    (可选)jQuery,jQuery Validation和jQuery UI    (可选)实体框架    (Optonal)Modernizr

这是我必须要让我的版本工作.... **

在“解决方案资源管理器”中,右键单击项目名称,然后选择“卸载项目”。然后再次右键单击该名称,并选择Edit ProjectName.csproj。 找到ProjectTypeGuids元素,并将{E53F8FEA-EAE0-44A6-8774-FFD645390401}替换为{E3E379DF-F4C6-4180-9B81-6769533ABE47}。 保存更改,关闭正在编辑的项目(.csproj)文件,右键单击该项目,然后选择“重新加载项目”。 如果项目引用使用以前版本的ASP.NET MVC编译的任何第三方库,请打开根Web.config文件并在配置部分下添加以下三个bindingRedirect元素:          

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Helpers" 
           publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" 
           publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="4.0.0.0"/>
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.WebPages" 
           publicKeyToken="31bf3856ad364e35" />
      <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>
</configuration>

快乐编码

Dan B。