【问题标题】:How to specify vb6.exe location for nant如何为 nant 指定 vb6.exe 位置
【发布时间】:2013-10-16 08:54:08
【问题描述】:

我正在尝试将我们从基于 CruiseControl 的旧构建服务器迁移到新的 TeamCity 构建服务器,但在使用我们仍然拥有的旧的基于 VB6 的组件时遇到了问题。

我们正在使用 Nant 脚本,这使任务变得更容易,但我在使用 vb6 nant 任务时遇到了障碍。我已经安装了 nant.contrib.tasks 以便现在可以识别标签,但我仍然收到错误...

[Step 1/1] D:\TeamCity\buildAgent\work\d2bf2472d554430\VB6Web\VB6Web.build(157,8):
'vb6' failed to start.
[Step 1/1] Step VB6Web Build (NAnt) failed.

我了解此错误“'vb6' 无法启动。”通常意味着它找不到 vb6.exe 但我看不到如何在脚本中指定它。

根据文档,“exename”是“应该用于启动外部程序的可执行文件的名称。”但被指定为“框架可配置参数”。我已经尝试将它作为属性添加到 vb6 标记中,但这给出了 Unexpected 属性错误。

我似乎无法在任何地方找到如何将 vb6.exe 路径指定为框架可配置参数的示例...请帮助。

【问题讨论】:

    标签: vb6 teamcity nant nantcontrib


    【解决方案1】:

    您不需要设置(也不打算设置)exename 参数,NAnt 任务将为您找到 VB 编译器。 exename 框架可配置参数实际上定义在抽象类ExternalProgramBase 中,vb6 任务继承自该类。

    vb6 任务要求安装 Visual Basic IDE 以便它可以使用vb6.exe。它会通过查找SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic\ProductDir(refer the source code) 找到vb6.exe

    由于您指出这是一台新的构建机器并且您正在重新安装软件(例如 NAnt Contrib),因此您可能没有在这台新的构建机器上重新安装 Visual Basic。如果已安装,请检查注册表项并按照路径进行操作,您可能需要重新安装 Visual Basic 以修复注册表项。

    【讨论】:

    • 感谢您的信息。我必须在早上检查,但至少我现在知道为什么我无法找到如何设置它(!)。 VB6 已完全安装并且可以通过 IDE 构建相关项目(与其他版本的工作室一样)正常工作,这是我检查的第一件事,所以它可能是 reg.密钥已损坏。除此之外,我可能会简单地将脚本转换为使用 exec 标签来直接运行构建,这将是一种耻辱,因为我希望不必在服务器之间对它们进行太多更改。我会报告我的发现,再次感谢。
    • 似乎,尽管 VB6 已安装并在盒子上工作,但该 reg。密钥不存在,因此可以解释我遇到的问题。感谢您的帮助伙伴,非常感谢。
    • 只是补充一点:上述密钥将存在于 SOFTWARE\Wow6432Node\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic\ProductDir\ 下的 x64 系统上。比较 nantcontrib 0.91 和 0.92 之间的行为,似乎 x64 系统上的 0.92 从 SOFTWARE\Microsoft\VisualStudio\6.0\Setup\Microsoft Visual Basic\ProductDir 读取,而不是从 Wow6432Node 读取。从 Wow6432Node 复制到 x64 注册表配置单元似乎导致 nantcontrib 0.92 找到 vb6.exe。 (我相信 nantcontrib 的版本是我测试中唯一的区别。)
    • 我创建了一个问题 (github.com/nant/nantcontrib/issues/34) 并提交了一个修复程序,该修复程序将对 x86 和 x64 路径进行 nantcontrib 检查。感谢 Jonathon Rossi 提供了代码文件的链接,感谢 Zeinrich 提供了 x64 路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2013-08-16
    • 2012-04-09
    相关资源
    最近更新 更多