2014-11-09 110 views
0

我试图自动生成源控制的MS Access应用程序(它只是前端,后端是SQL Server)。 Access客户端通过一个简单的C#控制台应用程序通过ClickOnce发布给用户...它在那个控制台项目中,我也通过来自此CodePlex库的自定义msbuild任务构建MS Access应用程序:https://buildmsaccessdb.codeplex.com/(也是精简版在另一个StackOverflow post on the subject)。在我的机器上,它一切正常。 Access源代码被编译到ACCDB中,然后转换为ACCDE,这是发布应用程序中包含的内容。Microsoft Access自动生成挂起创建时.ACCDE

但是,当我使它成为TFS中的自动构建版本时,它始终在将ACCDB转换为ACCDE的步骤中停顿。我尝试了多种方法来执行“Make ACCDE”(SysCmd 603)命令。我在PowerBA脚本,VBA等中尝试过它,但它似乎总是失速。那是因为自动构建过程不是一个交互过程,也许SysCmd 603需要交互式运行?如果我停止构建并查看ACCDB,那么一切都很好。它可以编译并可以手动编译到ACCDE中...所以它不是ACCDB不可编译的。

我想测试它作为一个交互式的TFS服务,但我不控制它运行的服务帐户。

任何建议提示,欢迎提前致谢!我们有这整个自动化的构建和发布过程,几乎可以工作,除了这一块!

回答

1

我对MSBuild任务库了解不多,但从快速查看源代码看起来它打开Access以运行任务并在一个对话框中与对话框进行交互。如果是这种情况,您肯定需要以交互模式运行构建。

事实上,你的构建挂起而不是出错也将表明这种情况。

即使您不控制服务帐户,我也会认为您组织中有其他人会这样做。我建议你和他们一起工作,并尝试在交互模式下构建并确保它能够正常工作。如果需要,您可以始终设置第二台以交互模式运行的生成计算机,并且当前的生成服务器仍处于“作为服务运行”模式。