如何在 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 项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Hudson 中删除不需要的构建工件

如何删除 Hudson 上游项目关系?

从.Net到vb6的Web服务的DLL - 如何设置app.config

如何在hudson服务器的slave中配置java.home?

如何使用来自 Hudson 的 Maven 生成 Cobertura 代码覆盖率报告

在 VB6 中,如何访问 FileSystem.GetFileInfo()?