我尝试自动构建源控制的MS Access应用程序(它只是前端,后端是SQL Server)。 Access客户端通过ClickOnce通过一个简单的C#控制台应用程序发布给用户......在该控制台项目中,我还通过此CodePlex库中的自定义msbuild任务构建MS Access应用程序: https://buildmsaccessdb.codeplex.com/(在另一个StackOverflow post on the subject中也是精神病的)。在我的机器上,一切正常。 Access源代码被编译成ACCDB,然后将其转换为ACCDE,该ACCDE包含在已发布的应用程序中。
然而,当我在TFS中进行自动构建时,它总是在将ACCDB转换为ACCDE的步骤中停止。我已经尝试了多种方式来执行"制作ACCDE" (SysCmd 603)命令。我已经在PowerShell脚本,VBA等中尝试过它......但它似乎总是停滞不前。那是因为自动构建过程不是一个交互式过程,也许SysCmd 603需要以交互方式运行?如果我停止构建并查看ACCDB,一切都很好。它编译并可以手动编译成ACCDE ......所以并不是ACCDB不可编译。
我想将其作为互动式TFS服务进行测试,但我无法控制其运行的服务帐户。
欢迎提出任何有关建议的提示,并提前致谢!我们有整个自动构建和发布过程,除了这一件之外几乎可以工作!
答案 0 :(得分:1)
我对MSBuild任务库了解不多,但从快速查看源代码看起来它打开Access来运行任务并在一个点上与对话框交互。如果是这种情况,您肯定需要以交互模式运行构建。
你的版本挂起并且没有错误的事实也表明情况就是这样。
即使您不控制服务帐户,我也会假设您的组织中有其他人这样做。我建议您与他们合作,并尝试以交互模式构建并确保其工作。如果需要,您可以始终设置以交互模式运行的第二台构建计算机,当前构建服务器保持“作为服务运行”模式。