根据您的项目的复杂性,创建一个有效的“构建”批处理文件可能需要一些修补才能开始工作,但这绝对是可能的。如果它只是一个可执行文件,那么你可以在命令行模式下运行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 安装程序。