Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 类型定义存在于两个库中_C#_Asp.net_Webforms_Asp.net 4.5 - Fatal编程技术网

C# 类型定义存在于两个库中

C# 类型定义存在于两个库中,c#,asp.net,webforms,asp.net-4.5,C#,Asp.net,Webforms,Asp.net 4.5,我正在使用.NET4.5构建一个ASP.NETWebForms网站 错误 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

我正在使用.NET4.5构建一个ASP.NETWebForms网站

错误

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"
但这只会导致“未指定源文件”,这同样令人困惑,因为源文件被指定为定向(&)

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

我有点困惑,因为这两种解决方案似乎都没有起到任何作用

我环顾四周,发现这里有很多帖子,人们都处理过类似的问题,但没有收到回复。我希望有人能帮助我

谢谢


正如您所注意到的,您正在使用.Net 4.5上的.Net 4.0版实体框架。
那不行


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

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

/r
开关仅在您实际在命令行上编译某些内容时才适用。因此,我根本不使用命令行。我以为我在编译一个新的别名库?如果没有,那么您想做什么?没有。别名只允许您在源文件中使用其他名称引用引用的程序集。我正在使用SQL Server CE 4.0并安装了一个允许EF与CE一起使用的包(问题的一部分)?不过我在包裹清单上没有看到。当我去卸载EF包时,由于依赖性问题(OAuth),它失败了。根据我的经验,我发现卸载和重新安装软件包往往是一种碰运气的做法,经常会破坏我的项目的稳定性,需要数小时来重新组装它,甚至不得不从头开始重新创建项目。是否有一种方法可以重新安装不需要我“消化”当前引用的包?请尝试手动将引用更改为指向/net45。但是,重新安装NuGet软件包不应该是一项麻烦的任务(尽管您可能希望稍后从源代码管理中恢复
web.config
)。听起来你把当地的参考资料搞砸了。如果您删除所有引用并从NuGet only重新安装所有内容,您应该不会有任何问题。我已尝试更改package.config中的值,但没有成功。是否有其他地方我应该寻找手动更改参考?您需要在项目中更改参考。谢谢SLaks。。。我对你有信心,赖安装了NuGet软件包,一切看起来都很顺利。非常感谢。