【问题标题】:How to write a batch file to run and execute the VB6 projects如何编写批处理文件来运行和执行 VB6 项目
【发布时间】:2023-03-08 08:20:01
【问题描述】:

我们的项目使用 VB6 技术运行,我们想要一个批处理文件,它可以在短时间内运行我们所有的 VB6 项目,并且需要给我们输出文件。

假设使用 Visual Studio 我们可以运行 vb 项目,一旦我们构建了该项目,我们将获得输出为 .exe 文件。 以类似的方式,当我们运行批处理文件时,它需要选择 ABC.vbp 文件并构建它,然后输出应该以 ABC.exe 的形式出现在适当的位置。

请帮助我们的项目这样做。这将对我和我的队友有很大帮助。

提前致谢。

【问题讨论】:

标签: vb6 windows-10 build-script


【解决方案1】:

根据您的项目的复杂性,创建一个有效的“构建”批处理文件可能需要一些修补才能开始工作,但这绝对是可能的。如果它只是一个可执行文件,那么你可以在命令行模式下运行VB6编译器,如下:

"C:\Program Files (x86)\Microsoft Visual Studio\VB98\vb6.exe" /m "C:\Project\Source\MyProg.vbp" /outdir "C:\Project\Runtime"

将该行放入批处理文件中,就完成了。注意所有的引号;它们是 Windows 命令处理器工作所必需的。 /m 开关表示使用 VB6 项目文件中的设置“制作”项目。另请注意,通过使用 /outdir 开关,目标目录不需要与包含源的目录相同。

如果您想制作一个不错的可分发包,并使用安装程序自动复制所需的所有其他文件(VB6 运行时、任何 DLL 或 OCX 以及您的应用程序需要的任何其他文件),那么您需要使用打包和部署向导。大致来说,步骤如下:

首先,在交互模式下使用打包和部署向导(在VB6开始菜单的工具下)创建一个Distributable Package,这将最终创建一个 setup.exe 程序、一个 SETUP.LST 文件和一个 .cab 文件,其中包含您的可执行文件、VB6 运行时以及您使用向导根据需要定义的任何其他模块或文件。它还创建一个 .PDM 文件,该文件本质上是生成上述设置文件的打包脚本。 (它还调整了一些其他文件和注册表项,所以不要认为你可以随便编辑 PDM 文件 - 它不会像你希望的那样工作。)

假设您在名为 C:\Project 的目录中构建所有这些,其中包含 Source、Runtime 和 Source\MyProg_Setup 的子目录。这些将是您将替换为以下示例的目录。

您的批处理文件必须做的第一件事是编译程序,这意味着在命令行模式下运行 VB6,如上所述。接下来,您的批处理文件可以在命令行模式下运行向导,但它对它的运行方式非常挑剔。首先,目标文件夹(在您第一次运行向导时创建)必须不存在,因此您的批处理文件中的第一行必须将其删除:

rd /s /q C:\Project\Source\MyProg_Setup

这将删除 Setup 目录和所有子目录 (/s),并且不会要求任何确认 (/q),这正是您想要的在批处理文件中。现在您可以使用在交互模式下运行时生成的 MyProg.PDM 文件运行向导的命令行版本:

"C:\Program Files (x86)\Microsoft Visual Studio\VB98\Wizards\PDWizard\PDCMDLN.exe" "C:\Project\Source\MyProg.vbp" /p "MyProg_Setup" /l "C:\Project\Source\MyProg_Setup.log"

这将重新创建 MyProg_Setup 子目录以及要分发给最终用户的设置文件。这里使用的命令行开关是:/p 是打包脚本的名称(减去 .PDM 扩展名),/l小写的“L”)将输出定向到日志文件,这样您就可以看到出了什么问题。

您需要向最终用户提供文件:

  • setup.exe
  • SETUP.LST
  • MyProg.cab

全部在一个目录中,可能在 CD-ROM 或闪存驱动器上。

有关于使用向导的原始 Microsoft 文档,但可能需要一段时间才能找到。此外,PDW 并没有得到很好的考虑,尤其是在当今时代(本世纪......),因此您可能会考虑替代部署工具,例如优秀的(而且免费!)Inno Setup 安装程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多