【问题标题】:How do I run a VB6 project within Hudson?如何在 Hudson 中运行 VB6 项目?
【发布时间】:2011-03-20 05:41:32
【问题描述】:

我想从命令行运行该组,而不是构建一个完整的项目组(几个 DLL 和一个可执行文件),如下所示: VB6 /runexit project

它消除了编译步骤并保持注册表清洁。

我可以设置一个从源代码管理获取最新代码并运行命令行的 Hudson 作业。我遇到的问题是目标程序在中途挂断。我可以通过 Hudson Web 界面中止它。

发生了什么?

【问题讨论】:

    标签: vb6 windows-xp hudson


    【解决方案1】:

    这里遇到的实际问题是 VB6 会在注册表中查找它的一些系统设置。当您自己运行项目时,VB 会从您的用户那里获取设置。当 Hudson 作为服务运行时,它以本地系统登录,它有自己的注册表设置。

    此处相关的 VB6 设置是 Options/ErrorTrapping。默认情况下,注册表包含“Break on All Errors”。有问题的项目需要“中断未处理的错误”。症状似乎是 VB6 在引发错误时锁定。

    解决方案涉及从我的用户导出相关设置并将其导入本地系统。

    有一个 answer 和一个 link 关于在本地系统下运行 regedit,但我的答案是使用 Hudson 本身将 regedit 作为本地系统运行。还有一个关于vb6 ide设置的问题here

    1. 使用命令行窗口将 VB 设置从该键导出到如下文件:

      regedit /e vbide-1.reg "HKEY_CURRENT_USER\Software\Microsoft\VBA\Microsoft Visual Basic"

    2. 在 Hudson 中创建一个新作业,该作业暂时不执行任何操作,但单击立即构建以创建作业文件夹。

    3. 找到它创建的文件夹并将 vbide-1.reg 复制到那里的“工作区”文件夹中。

    4. 配置 Hudson 作业以执行此 Windows 批处理命令:
      regedit /s vbide-1.reg

    5. 再次单击立即构建,批处理命令应运行。在控制台输出中验证:
      ...\workspace>regedit /s vbide-1.reg

    6. 禁用构建,或者只是删除项目。

    【讨论】:

    • 由于设置错误编译时挂起,如果设置正确编译时出现编译错误怎么办?会不会也挂了?如果是这样,您应该寻找不同的解决方案。构建不允许挂起,不知道构建是否成功。 --- 另一个想法是local_system 帐户。这个帐户有很多权限。您应该考虑为您的 Hudson 实例创建一个特殊用户并以该用户身份运行服务。否则,可以在 Hudson 中配置作业的每个人都对您的 Hudson 服务器具有管理员权限。
    • 好的,我会注意编译错误的事情。我现在只是在试验,所以权限现在无关紧要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多