我在VS 2010中创建了一个ASP.NET MVC4项目,然后决定我想要4.5框架在VS 2012中打开项目并将目标框架更改为4.5。
我遇到了一些编译错误,我相当肯定是由于对版本5以下的EntityFramework版本的引用造成的。
例如:
错误2找不到类型或命名空间名称“Table”(您是否缺少using指令或程序集引用?)c:\ users \ saad \ documents \ visual studio 2012 \ Projects \ MvcApplication1 \ MvcApplication1 \ Models \ AccountModels.cs 21 6 MvcApplication1
以下是我的Web.config文件中的条目:
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
和......
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
我没有幸运将EntityFramework引用更改为更高版本,因为它没有出现在框架列表中。
根据给出类似问题的人的一些建议,我尝试使用包管理器控制台来解决问题。你可以看到我在下面遇到的混乱。
有谁知道如何解决这个问题?
我确实需要第5版来完成我正在做的工作。
PM&GT; Uninstall-Package entityframework已成功删除 来自PersonalityTest_002的'EntityFramework 5.0.0'。目录不是 空。
成功卸载'EntityFramework 5.0.0'。
PM&GT; Install-Package entityframework Install-Package:远程名称 无法解决:'nuget.org'在行:1字符:16 + Install-Package&lt;&lt;&lt;&lt;的EntityFramework + CategoryInfo:NotSpecified:(:) [Install-Package],WebException + FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand PM&GT;安装包EntityFramework'EntityFramework 5.0.0'已经 安装。该目录不为空。
成功卸载'EntityFramework 5.0.0'。安装包: 无法添加对'EntityFramework'的引用。在行:1字符:16 + Install-Package&lt;&lt;&lt;&lt;的EntityFramework + CategoryInfo:NotSpecified:(:) [Install-Package],InvalidOperationException + FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand PM&GT;已经安装包实体框架'EntityFramework 5.0.0' 安装。该目录不为空。
成功卸载'EntityFramework 5.0.0'。安装包: 无法添加对'EntityFramework'的引用。在行:1字符:16 + Install-Package&lt;&lt;&lt;&lt;的EntityFramework + CategoryInfo:NotSpecified:(:) [Install-Package],InvalidOperationException + FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand PM&GT;安装包EntityFramework'EntityFramework 5.0.0'已经 安装。该目录不为空。
成功卸载'EntityFramework 5.0.0'。安装包: 无法添加对'EntityFramework'的引用。在行:1字符:16 + Install-Package&lt;&lt;&lt;&lt;的EntityFramework + CategoryInfo:NotSpecified:(:) [Install-Package],InvalidOperationException + FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand PM&GT; Uninstall-Package EntityFramework -Force卸载包: 无法找到包'EntityFramework'。在行:1 char:19 + Uninstall-Package&lt;&lt;&lt;&lt; EntityFramework -Force + CategoryInfo:NotSpecified:(:) [Uninstall-Package],InvalidOperationException + FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.UninstallPackageCommand PM&GT;安装包EntityFramework'EntityFramework 5.0.0'已经 安装。该目录不为空。
成功卸载'EntityFramework 5.0.0'。安装包: 无法添加对'EntityFramework'的引用。在行:1字符:16 + Install-Package&lt;&lt;&lt;&lt;的EntityFramework + CategoryInfo:NotSpecified:(:) [Install-Package],InvalidOperationException + FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand PM&GT;
答案 0 :(得分:1)
如果您正在使用NuGet(如果没有,请执行此操作),您可能需要删除并添加所有包,以便切换到4.5。如果您打开packages.config,则可以看到版本。
答案 1 :(得分:0)
TableAttribute 来自:
Assembly System.ComponentModel.DataAnnotations.dll, v4.0.0.0
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll
因此,您可能会错过项目中对此程序集的引用。