我刚刚创建了一个新的MVC 2应用程序,它引用了实体模型库和服务库,并且所有编译都运行良好而不运行应用程序,但是当我尝试运行它时,我得到以下运行时错误“
编译器错误消息:CS0012:类型“System.Data.Objects.DataClasses.EntityObject”在未引用的程序集中定义。您必须添加对程序集'System.Data.Entity,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用。
我已经多次检查了几次(例如Umpteen * n),引用的程序集在所有三个项目中都被重新启用。如果不是,WTF会不会出现构建错误?
答案 0 :(得分:8)
对于ASP.NET MVC 4(.NET4.5)更改
<system.web>
<compilation debug="true" targetFramework="4.0" />
...
到
<system.web>
<compilation debug="true" targetFramework="4.0" >
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</assemblies>
</compilation>
答案 1 :(得分:7)
刚碰到这个。基本上,您需要在System.Data.Entity
中添加对web.config
的引用(并且您已将dll添加为项目的参考)
.NET3.5
<assemblies>
..........
<add assembly="System.Data.Entity, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"/>
</assemblies>
.NET4
:
<assemblies>
..........
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" />
</assemblies>
答案 2 :(得分:2)
答案 3 :(得分:1)
尝试在当前项目中添加System.Data.Entity
的引用,这是错误的。
答案 4 :(得分:0)
就我而言,我的网络项目(针对.net v4.5)依赖于另一个包含EDMX模型的项目(目标是.net v4.0)。
一旦我将依赖项目升级到目标.net 4.5并重建了这个错误就消失了。
答案 5 :(得分:0)
关闭Visual Studio并再次重新打开它就足以解决问题了。作为一个注释,我最近对edmx模型进行了更改。