我正在开发一个(免费的,开源的)实体框架工具,它基本上是一个ADO.NET提供者,但它也使用了一些更高的抽象(例如ObjectContext,EntityConnection)。我希望它支持几乎所有旧版本的EF(EF4 =<)。在EF5问世之前,它非常容易,因为我只能通过仅针对.NET40来开发它。
EF5使事情变得更加复杂,因为一些新功能需要.NET45框架。另一方面,EF5也支持.NET40。最重要的是,EF现在独立于.NET框架开发。
目前,很明显,针对.NET40和.NET45都是不可避免的。但目前我不知道设置符合独立开发EF的多目标环境的最佳方法是什么。我还没有找到关于这个问题的任何好文件。
我应该使用多个解决方案文件吗?多个项目文件?多解决方案配置?以某种方式参考所有版本的EF?创建通用构建脚本?如果有,怎么样?如何针对不同配置运行我的单元测试?如何表明测试可以/应该在特定配置中失败?更改的命名空间(例如ObjectContext)怎么样?我应该使用#if指令来解决这个冲突吗?如果新的EF版本需要实现一个会破坏以前版本兼容性的功能,该怎么办?我现在真的很不确定。
答案 0 :(得分:2)
在http://entityframework.codeplex.com/查看EF6代码库。我们基本上按照您建议的方式构建用于.NET 4和.NET 4.5的EF6 - 使用多个构建配置。
其他一些要考虑的要点: