【发布时间】:2016-08-13 00:18:26
【问题描述】:
我正在尝试使用 Entity Framework 6 为 Microsoft .NET 4.0 构建一个 ASP.NET 网站。该网站在 web.config 中明确针对 .NET 4.0:
<compilation debug="true" targetFramework="4.0">
,applicationhost.config 中的 IIS Express 应用程序池也针对 .NET 4.0:
<add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
网站启动时,会显示一些CS0433 编译器错误,如下所示:
error CS0433: The type "System.ComponentModel.DataAnnotations.Schema.TableAttribute" exists in both "c:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.ComponentModel.DataAnnotations\v4.0_4.0.0.0__31bf3856ad364e35\System.ComponentModel.DataAnnotations.dll" and "c:\Users\%username%\AppData\Local\Temp\Temporary ASP.NET Files\vs\e798ee36\2b3f5a24\assembly\dl3\fd34a92a\0052703a_0990d101\EntityFramework.DLL"
据我记得,.NET 4.0 中不应该有 System.ComponentModel.DataAnnotations 程序集,或者至少它不应该包含 TableAttribute、KeyAttribute 等类。我唯一的线索是错误页面的底线,上面写着
Microsoft .NET Framework, version:4.0.30319; ASP.NET, version:4.6.1055.0
但是,我不知道如何专门更改网站的 ASP.NET 版本(当然,如果这是问题的根源)。
【问题讨论】:
-
您是否尝试过:1)在VS中右键单击解决方案,然后选择
Clean Solution,2)右键单击解决方案,然后选择Rebuild Solution。这里没有保证,但它可能会有所帮助,因为错误中提到的 DLL:s 之一位于Temporary ASP.NET Files文件夹中。 -
@user1429080 是的,这是我尝试的第一件事。
-
那么您确定在您的 Visual Studio 项目中的任何地方都没有对 System.ComponentModel.DataAnnotations 程序集的引用?
-
您的项目中是否有多个上下文具有相同的表名?如果有,请更改表名。
-
@AlekseiOmelaienko 你在这方面有什么收获吗?我现在也有同样的问题!干杯
标签: asp.net .net entity-framework-6 gac