【发布时间】:2011-03-20 05:41:32
【问题描述】:
我想从命令行运行该组,而不是构建一个完整的项目组(几个 DLL 和一个可执行文件),如下所示:
VB6 /runexit project
它消除了编译步骤并保持注册表清洁。
我可以设置一个从源代码管理获取最新代码并运行命令行的 Hudson 作业。我遇到的问题是目标程序在中途挂断。我可以通过 Hudson Web 界面中止它。
发生了什么?
【问题讨论】:
标签: vb6 windows-xp hudson
我想从命令行运行该组,而不是构建一个完整的项目组(几个 DLL 和一个可执行文件),如下所示:
VB6 /runexit project
它消除了编译步骤并保持注册表清洁。
我可以设置一个从源代码管理获取最新代码并运行命令行的 Hudson 作业。我遇到的问题是目标程序在中途挂断。我可以通过 Hudson Web 界面中止它。
发生了什么?
【问题讨论】:
标签: vb6 windows-xp hudson
这里遇到的实际问题是 VB6 会在注册表中查找它的一些系统设置。当您自己运行项目时,VB 会从您的用户那里获取设置。当 Hudson 作为服务运行时,它以本地系统登录,它有自己的注册表设置。
此处相关的 VB6 设置是 Options/ErrorTrapping。默认情况下,注册表包含“Break on All Errors”。有问题的项目需要“中断未处理的错误”。症状似乎是 VB6 在引发错误时锁定。
解决方案涉及从我的用户导出相关设置并将其导入本地系统。
有一个 answer 和一个 link 关于在本地系统下运行 regedit,但我的答案是使用 Hudson 本身将 regedit 作为本地系统运行。还有一个关于vb6 ide设置的问题here。
使用命令行窗口将 VB 设置从该键导出到如下文件:
regedit /e vbide-1.reg "HKEY_CURRENT_USER\Software\Microsoft\VBA\Microsoft Visual Basic"
在 Hudson 中创建一个新作业,该作业暂时不执行任何操作,但单击立即构建以创建作业文件夹。
找到它创建的文件夹并将 vbide-1.reg 复制到那里的“工作区”文件夹中。
配置 Hudson 作业以执行此 Windows 批处理命令:regedit /s vbide-1.reg
再次单击立即构建,批处理命令应运行。在控制台输出中验证:...\workspace>regedit /s vbide-1.reg
禁用构建,或者只是删除项目。
【讨论】: