我有一个带有实体框架5和.NET 4.5的webforms项目。当我发布网站时,它会在编译的代码中生成“packages”目录,其中包含一些实体框架dll。然而,即使我删除它,该网站运行良好。应该提到我不使用代码优先。 这个文件夹的目的是什么?
TIA。
答案 0 :(得分:1)
首先,请确保您使用EF5
作为版本5.0
,而不是4.4
,如果您首次在EF5
上安装了.net 4
并且稍后更新为.net 4.5
。
http://thedatafarm.com/data-access/when-entity-framework-5-ef5-is-not-entity-framework-5-ef5/
从EF5
开始,实体框架是一个单独的api(包),可以通过Library Package Manager
或NuGet
从Visual Studio
安装,它不是{{}的一部分1}}安装了。
.net framework
文件夹是packages
软件包安装的默认文件夹。
因此,请查看实际使用EF的项目中必须存在的NuGet
引用,并查看您引用的程序集的版本和位置。如果您的EntityFramework
属性设置为true,则无需在安装包中包含Copy Local
文件夹,程序集将自动复制到packages
文件夹,否则您将不得不
答案 1 :(得分:1)
您的问题的简短回答是:不,您不需要包文件夹
答案很长:不,你不需要生产中的packages文件夹,它是由nuget在你安装包来保存那个包的dll时创建的。
因此,如果您在项目中包含EF,它将被复制到那里并且将一个引用添加到您的项目〜/ packages / Entityframework.dll,在编译时,dll的副本将被放入您的bin文件夹中
在我们的实时环境发布期间,我会定期删除此文件夹,因为它不需要。