13

我一直无法找到这个问题的答案,并且整个周末都在网上搜索,所以我希望你能帮我解决这个问题。

使用 Visual Studio 2012 时,我创建了一个新的 MVC4 Web 应用程序项目并得到一些编译错误。

这是我的问题:

  1. 我使用 Visual Studio 2012 创建了一个新的 MVC4 Web 应用程序,我选择 Internet 应用程序并将其设置为使用 RAZOR 引擎。

  2. 我转到应用程序属性并在应用程序选项卡下将目标框架从 .NET Framework 4.5 更改为 .NET Framework 4。

  3. 构建会产生以下错误:

    错误 1 ​​找不到类型名称“TableAttribute”。此类型已转发到程序集“System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”。考虑添加对该程序集的引用。c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels.cs 21 6 MvcApplication1

    错误 2 找不到类型或命名空间名称“表”(是否缺少 using 指令或程序集引用?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels。 cs 21 6 MvcApplication1

    错误 3 找不到类型或命名空间名称“DatabaseGeneratedAttributeAttribute”(是否缺少 using 指令或程序集引用?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels。 cs 25 10 MvcApplication1

    错误 4 找不到类型名称“DatabaseGeneratedAttribute”。此类型已转发到程序集“System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”。考虑添加对该程序集的引用。c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels.cs 25 10 MvcApplication1

    错误 5 找不到类型或命名空间名称“CompareAttribute”(是否缺少 using 指令或程序集引用?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels。 cs 54 10 MvcApplication1

    错误 6 找不到类型或命名空间名称“Compare”(是否缺少 using 指令或程序集引用?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels。 cs 54 10 MvcApplication1

    错误 7 找不到类型或命名空间名称“CompareAttribute”(是否缺少 using 指令或程序集引用?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels。 cs 87 10 MvcApplication1

    错误 8 找不到类型或命名空间名称“Compare”(是否缺少 using 指令或程序集引用?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels。 cs 87 10 MvcApplication1

4

3 回答 3

26

只需重新安装 EntityFramework:

  1. 转到包管理器控制台
  2. 卸载包实体框架
  3. 安装包实体框架

那就是错误应该消失!

于 2013-01-16T09:47:39.273 回答
7

其实不是MVC4模板项目的问题,而是目标.Net Framework的问题。

当您在 VS2012 中创建新的 MVC4 项目时,它将(默认情况下)引用 .Net 4.5。所有文件均基于此版本生成。AccountModel 使用来自System.ComponentModel.DataAnnotations( TableAttribute, DatabaseGeneratedAttribute, ...

重新定位框架版本只会更改引用并且不会影响源代码:来自 4.5 框架的属性不会被删除。

如果你想要一个带有 .Net 4.0 的 MVC4 项目,你可以:

  • 从 AccountModel 中删除了 .net 4.5 属性
  • 如果不需要,请删除 AccountMode
  • 在创建新项目向导中选择 .NET 4.0。
于 2012-10-01T11:52:33.403 回答
1

Uninstall-Package entityframework / Install-Package entityframework 解决方案对我不起作用。相反,我不得不在记事本中打开 .csproj 文件并进行查找并将“net40”替换为“net45”,以强制它加载所有包的 .net 4.5 版本。这也使正确版本的 EntityFramework 加载。

于 2016-06-09T23:57:52.037 回答