首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF 5和WebSite冲突

EF 5和WebSite冲突
EN

Stack Overflow用户
提问于 2013-06-05 19:24:16
回答 1查看 116关注 0票数 0

我在网站项目和EntityFramework5上遇到了问题。

我将介绍一些背景知识:项目类型是网站,而不是web应用程序或MVC,因此在部署时,我只需将所有文件复制到服务器,并在第一次访问时编译所有文件。这就是我认为导致问题的原因。

该项目的目标是.Net 4.0,所以当我从nuget安装EntityFramework时,dll文件版本是4.4。使用IIS Express从VisualStudio运行项目是很好的(因为VisualStudio知道目标框架是4,并使用.Net框架4DLL编译项目),但是当将文件复制到安装了.Net框架4.5的生产服务器时,当第一次访问时,网站将根据.Net框架4.5DLL进行编译,并且出现问题,因为EntityFramework 4.4包含类(如列)的定义,这些类(如列)也包含在.Net 4.5的dataannotations中。

代码语言:javascript
复制
The type 'System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute' 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\jyuste\AppData\Local\Temp\Temporary ASP.NET Files\portalempleado\4700d3ec\2c948b16\assembly\dl3\1c8b81c9\750c5018_1e5dce01\EntityFramework.DLL'

我认为将项目升级到.Net 4.5并更新EntityFramework参考可以解决这个问题,但我现在不能这么做。

你认为还有其他的解决方案吗?

EN

回答 1

Stack Overflow用户

发布于 2013-06-05 21:40:07

根据您所写的内容,一种可能的解决方案是更改部署过程。

首先将站点本地发布到任何目录,而不是将C#源文件复制到目标服务器。发布可以使用VS菜单中的"Build/Publish Web Site“选项来完成。

这将编译所有的源文件,并创建一个仅包含声明性代码(*.aspx、*.ascx、*.asmx等)的部署就绪结构和/bin文件夹,该文件夹包含带有已编译的*.dlls代码的C#。

然后才能将发布的结构复制到destiation服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16938651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档