作为构建过程的一部分,我们必须创建一个 Access ACCDB (2007) 数据库。数据库构成了我们应用程序的当前前端,并且必须(出于其他原因)在构建过程的初始阶段进行构建。
目前,这是一个我希望自动化的手动过程。我们的数据库由许多表、公式、查询等组成。我相信我们实际上已经接近 Access 实际能够处理的限制,因此我们尽量不向其中添加任何内容。
我看过这个项目: http://buildmsaccessdb.codeplex.com/
它似乎工作得很好。但是,在我们的项目中,我们还有一个 ACD 文件,它是一个二进制文件,其中包含许多与系统相关的表。在 Access 开发方面,我绝不是一个向导。我刚刚接手处理构建过程的任务。
每当我使用上述项目来包含 ACD 文件时,我都会收到 COM 互操作异常。现在我面前没有错误消息,但如果它进一步说明原因,我可以发布它。
我们使用 StarTeam 作为我们的源代码控制,目前在尝试从源代码控制系统创建我们的数据库时遇到了重大问题。我有时会花费数小时来重试从源代码管理中创建数据库,因为每次 Access 尝试导入 ACD 文件时都会出现未知故障。
我们已尝试停用 Access 和 ACD 文件中的任何宏,这些宏可能在从数据库创建阶段自动激活。我们怀疑这可能会中断数据库创建过程,但问题仍然存在:经过多次尝试和部分运气后,我们只能从源代码管理创建我们的 Access 数据库!我想通过自动化整个事情来补救。
有些人可能会指出,最好的起点是找到从 Starteam 中提取 ACD(和其他)源文件的问题。我(最初)对此的看法是,如果它归结为纯粹的运气,我宁愿让它自动化,然后让计算机浪费时间尝试构建 Access 数据库,然后让我监控这个过程。
欢迎提供有关如何解决在自动构建的源代码控制系统(即持续集成)中获取 Access 数据库的问题的任何帮助或提示。
当然,我也想就如何解决无法从源代码管理创建数据库的问题提出建议,除非运气不佳。
最佳答案
我们最终设法解决了问题:
如果我们使用二进制 ACD 文件作为创建数据库的起点,那么一旦数据库被导入,它的内容也将可用。以它为起点,我的意思是
因此,不应将 ACD 文件与其他文件一起导入,而应将其作为起点。通过查看 codeplex 项目中的实际 msbuild 任务,这一点变得显而易见。
除上述步骤外,我们在Ms Access 中还遇到了与UIRibbon 类相关的构建错误。这已通过创建 MSBuildAccess 项目文档中提到的引用文件解决(请参阅 http://buildmsaccessdb.codeplex.com/documentation )。
现在,我们只需要在编译 Access 数据库时解决内存不足的问题。随着我们减小 Access 项目的大小,这很可能会消失。根据我们的“经验”,我们的 Access 解决方案在模块、报告、表单等方面的数量已达到 Access 能够处理的极限。 有关该问题的更多信息,请参阅这些引用资料:
https://stackoverflow.com/questions/8482186/
相关文章:
asp.net-mvc - ASP.NET MVC 表单例份验证导致登录 url 被调用两次
ruby-on-rails-3 - 无法修改关联,因为源反射类通过 :has_many + rail
ruby-on-rails - Rails - I18n - 如何本地化 f.collection_
xml - HTML 到 XML,反之亦然,并在运行时从 UI - JAXB 使用模式进行验证?
macos - 从终端的钥匙串(keychain)中删除私钥
asp.net - 使用分页在 RadGrid Telerik 中查找记录