如何在 Hudson 中运行 VB6 项目?
Posted
技术标签:
【中文标题】如何在 Hudson 中运行 VB6 项目?【英文标题】:How do I run a VB6 project within Hudson? 【发布时间】:2011-03-20 05:41:32 【问题描述】:我想从命令行运行该组,而不是构建一个完整的项目组(几个 DLL 和一个可执行文件),如下所示:
VB6 /runexit project
它消除了编译步骤并保持注册表清洁。
我可以设置一个从源代码管理获取最新代码并运行命令行的 Hudson 作业。我遇到的问题是目标程序在中途挂断。我可以通过 Hudson Web 界面中止它。
发生了什么?
【问题讨论】:
【参考方案1】:这里遇到的实际问题是 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
禁用构建,或者只是删除项目。
【讨论】:
由于设置错误编译时挂起,如果设置正确编译时出现编译错误怎么办?会不会也挂了?如果是这样,您应该寻找不同的解决方案。构建不允许挂起,不知道构建是否成功。 --- 另一个想法是local_system 帐户。这个帐户有很多权限。您应该考虑为您的 Hudson 实例创建一个特殊用户并以该用户身份运行服务。否则,可以在 Hudson 中配置作业的每个人都对您的 Hudson 服务器具有管理员权限。 好的,我会注意编译错误的事情。我现在只是在试验,所以权限现在无关紧要。以上是关于如何在 Hudson 中运行 VB6 项目?的主要内容,如果未能解决你的问题,请参考以下文章
从.Net到vb6的Web服务的DLL - 如何设置app.config
如何在hudson服务器的slave中配置java.home?