Continuous integration 自动构建Access 2007数据库

Continuous integration 自动构建Access 2007数据库,continuous-integration,ms-access-2007,starteam,ms-access,Continuous Integration,Ms Access 2007,Starteam,Ms Access,作为构建过程的一部分,我们必须创建Access ACCDB(2007)数据库。数据库构成了我们应用程序的当前前端,并且必须(出于其他原因)在构建过程的初始阶段进行构建 目前,这是一个手动过程,我希望能自动完成。我们的数据库由许多表、公式、查询等组成。我相信我们实际上已经接近Access实际能够处理的极限,所以我们尽量不向其添加任何内容 我已经看过这个项目: 它似乎工作得很好。然而,在我们的项目中,我们还有一个ACD文件,它是一个二进制文件,包含许多与系统相关的表。说到访问开发,我绝不是一个向导

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

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

我已经看过这个项目:

它似乎工作得很好。然而,在我们的项目中,我们还有一个ACD文件,它是一个二进制文件,包含许多与系统相关的表。说到访问开发,我绝不是一个向导。我刚刚接管了处理构建过程的任务

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

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

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

你们中的一些人可能会指出,从Starteam中提取ACD(和其他)源文件是最好的开始。我(最初)的看法是,如果这完全是运气使然,我宁愿让它自动化,然后让计算机浪费时间尝试建立Access数据库,然后让我监控这个过程

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


当然,我还想知道如何解决在没有一定程度的愚蠢运气的情况下无法从源代码管理创建数据库的问题。

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

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

  • 将ACD文件复制到相应的目标
  • 将acd文件重命名为MyCompanyName.accdb
  • 在MSBuildAccess项目中,提供MyCompanyName.accdb作为要将文件导入的MS Access数据库
  • 因此,ACD文件不应与其他文件一起导入,而应将其作为起点。通过查看codeplex项目中的实际msbuild任务,这一点变得显而易见

    除了上述步骤外,我们还遇到了与Ms Access中的UIRibbon类相关的生成错误。通过创建MSBuildAccess项目文档中提到的引用文件(请参阅),可以解决此问题

    现在,我们只需要在编译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