continuous-integration - 自动构建 Access 2007 数据库

标签 continuous-integration ms-access-2007 starteam ms-access

作为构建过程的一部分,我们必须创建一个 Access ACCDB (2007) 数据库。数据库构成了我们应用程序的当前前端,并且必须(出于其他原因)在构建过程的初始阶段进行构建。

目前,这是一个我希望自动化的手动过程。我们的数据库由许多表、公式、查询等组成。我相信我们实际上已经接近 Access 实际能够处理的限制,因此我们尽量不向其中添加任何内容。

我看过这个项目: http://buildmsaccessdb.codeplex.com/

它似乎工作得很好。但是,在我们的项目中,我们还有一个 ACD 文件,它是一个二进制文件,其中包含许多与系统相关的表。在 Access 开发方面,我绝不是一个向导。我刚刚接手处理构建过程的任务。

每当我使用上述项目来包含 ACD 文件时,我都会收到 COM 互操作异常。现在我面前没有错误消息,但如果它进一步说明原因,我可以发布它。

我们使用 StarTeam 作为我们的源代码控制,目前在尝试从源代码控制系统创建我们的数据库时遇到了重大问题。我有时会花费数小时来重试从源代码管理中创建数据库,因为每次 Access 尝试导入 ACD 文件时都会出现未知故障。

我们已尝试停用 Access 和 ACD 文件中的任何宏,这些宏可能在从数据库创建阶段自动激活。我们怀疑这可能会中断数据库创建过程,但问题仍然存在:经过多次尝试和部分运气后,我们只能从源代码管理创建我们的 Access 数据库!我想通过自动化整个事情来补救。

有些人可能会指出,最好的起点是找到从 Starteam 中提取 ACD(和其他)源文件的问题。我(最初)对此的看法是,如果它归结为纯粹的运气,我宁愿让它自动化,然后让计算机浪费时间尝试构建 Access 数据库,然后让我监控这个过程。

欢迎提供有关如何解决在自动构建的源代码控制系统(即持续集成)中获取 Access 数据库的问题的任何帮助或提示。

当然,我也想就如何解决无法从源代码管理创建数据库的问题提出建议,除非运气不佳。

最佳答案

我们最终设法解决了问题:

如果我们使用二进制 ACD 文件作为创建数据库的起点,那么一旦数据库被导入,它的内容也将可用。以它为起点,我的意思是

  1. 将 ACD 文件复制到适当的目的地
  2. 将 acd 文件重命名为 MyCompanyName.accdb
  3. 提供 MyCompanyName.accdb 作为 MS Access 数据库以将文件导入到 MSBuildAccess 项目中

因此,不应将 ACD 文件与其他文件一起导入,而应将其作为起点。通过查看 codeplex 项目中的实际 msbuild 任务,这一点变得显而易见。

除上述步骤外,我们在Ms Access 中还遇到了与UIRibbon 类相关的构建错误。这已通过创建 MSBuildAccess 项目文档中提到的引用文件解决(请参阅 http://buildmsaccessdb.codeplex.com/documentation )。

现在,我们只需要在编译 Access 数据库时解决内存不足的问题。随着我们减小 Access 项目的大小,这很可能会消失。根据我们的“经验”,我们的 Access 解决方案在模块、报告、表单等方面的数量已达到 Access 能够处理的极限。 有关该问题的更多信息,请参阅这些引用资料:

  • http://help.lockergnome.com/office2/Create-accde-file-error--ftopict802934.html
  • http://stackoverflow.com/questions/1300632/compiling-an-access-2007-accdb-into-accde
  • http://bytes.com/topic/access/answers/518438-cant-create-mde

关于continuous-integration - 自动构建 Access 2007 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8482186/

相关文章:

TFS:这可能吗?

deployment - 部署 Windows 服务的最佳实践

F# 类型提供程序和持续集成,第 2 部分

database - 如何摆脱#func!出现在MS Access的查询表中?

c# - 如何在数据 GridView 中查看 MS Access 中的数据?

continuous-integration - CruiseControl + Starteam : not picking up all files

java - jenkins 执行器未构建 MasterToSlaveCallable

ms-access - Access 2007坚持保存查询

regex - 解析 StarTeam 命令行客户端输出

StarTeam - 使用 stcmd checkout 特定修订版的文件