类型定义存在于两个库中

时间:2013-07-22 15:47:48

标签: c# asp.net webforms asp.net-4.5

我正在使用.NET 4.5构建ASP.NET Web Forms网站。

错误......

The type 'System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute' exists in both 'f:\Projects\web sites\RC1Iteration05\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll' and 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll'

我尝试使用...

对库进行别名
csc /r:EF_DataAnnotations="f:\Projects\web sites\RC1Iteration05\packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll" /r:CM_DataAnnotations="c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll"

但这只导致“未指定源文件”,这同样令人困惑,因为源文件被指定为定向(here& here)。

我注意到错误是在net40文件夹而不是net45文件夹中引用了EF dll。我想如果我使用net45版本问题会自行解决,但我不知道如何更改该引用。我将“targetFramework”属性更改为packages.config文件中的EntityFramework包,但这没有任何区别。

我有点卡住,因为这两种解决方案似乎都没有做任何事情。

我环顾四周,在这里发现了一些帖子,人们已经处理过类似的问题,但没有收到任何答复。我希望有人可以提供帮助!

由于

2 个答案:

答案 0 :(得分:37)

正如您所注意到的,您在.Net 4.5上使用.Net 4.0版本的Entity Framework 那不行。

从NuGet重新安装EF,它应该可以正常工作。

答案 1 :(得分:7)

其他选项对我不起作用。什么工作进入\ packages \ EntityFramework.6.1.3 \ lib \并删除net40目录,然后进行全部重建。