如何在Docker容器中设置VB6 IDE(在Windows上)?

时间:2018-08-14 14:52:51

标签: docker vb6

是否可以创建可用于运行VB6 IDE的Docker容器?是否存在任何topstop问题/不兼容?

从我对Docker的了解(也许不多)来看,这似乎是一种运行VB6 IDE和编译器的轻量级方法,尤其是与虚拟机相比。

为此,我想到了两种情况:

  • 在“干净”的环境中执行构建

  • 常规软件开发任务

在新计算机上安装和配置VB6时,似乎需要处理许多特性,因此将所有内容捆绑到一个容器中可以节省大量时间并避免一些陷阱。

似乎Docker配置的关键属性是使用特定的已注册COM DLL等设置环境,以及其他细节(例如常规文件等)。我的印象是,您可以在基于某种容器分层的Docker环境中积累这些东西。当然,要把这些东西排除在实际的Windows操作系统配置之外。

注意:我拥有用于​​VB6和SP6的合法/原始安装介质。


我在GitHub上见过this project,但这是用于在Linux上的WINE下运行VB6,这不是我所需要的。也许这可能是在Windows上构建容器的有用起点。


对于背景:

目前,我使用虚拟机来运行VB6 IDE来执行构建。此功能可以正常运行,但看起来相对较慢,并且会占用很多磁盘空间。由于这些开销,它不适合开发使用。

构建使用Kinook Visual Build Pro运行,并且还包括构建一些.NET程序集,WISE安装程序等。最终,我也希望将所有这些内容都放入容器中。

2 个答案:

答案 0 :(得分:4)

我们确实在docker中为Windows编译了vb6项目。同时拥有300万个本地用户和1000万个.NET LOC。


您需要Windows的完整版本,因为WindowsServerCore尚无法使用。

从mcr.microsoft.com/windows:1903

  1. 以静默安装方式安装VB6 ide。

%INSTDIR%\ setup \ acmsetup.exe / K“ 12345678” / T“%INSTDIR%\ setup \ VB98PRO.STF” / S“%INSTDIR%\” / n“用户名” / o“公司名称” / b 1 / gc%cd%\ vb6_install_log.txt / qtn

  1. 安装VB6-SP6。

要安装vbsp6,请解压缩VS6sp61.cab(VS6sp62.cab,VS6sp63.cab,VS6sp64.cab必须在文件旁边)。然后,将VB98 Dir复制到现有的VB6安装上。

如果您遇到访问冲突异常的问题,则需要此安装。

  1. 立即尝试编译器

建立一个小项目非常容易。只需从默认项目开始,然后再继续。

  1. 第三方组件

这是困难的部分。大多数情况下,没有用于旧组件的静默安装程序。您可以自己注册第三方文件来解决此问题。只需使用regsvr32即可。


您可以在github上找到完整的食谱:

https://github.com/Ro-Fo/Vb6IdeDocker

答案 1 :(得分:1)

我有一个适用于本地安装 Docker 安装的脚本(在 windows:1903 容器中测试)。它需要来自微软的 vb6 企业 ISO 文件。它运行一个 powershell 脚本,该脚本执行使其工作所需的所有文件和注册表技巧。关键部分是修改 .stf 文件。

在 GitHub 上的 https://github.com/gdsestimating/vb6-install-recipe 上找到它。

@rofo 的配方缺少很多步骤。我似乎也没有与他相同的 Service Pack 文件。然而,他给出的静默安装命令是我进步的关键部分,所以没有它我就无法完成。

如果您使用的是 Microsoft 的 VB6 和 SP6 iso 映像(我只能通过我在 https://my.visualstudio.com 的订阅找到它们),那么您可以使用上述存储库。

是什么让 powershell 脚本工作

关键是 .stf 文件(在 iso 的 VB6 安装文件夹中)定义了安装所需的一切。它就像 .msi 文件的前身。 More about it can be found here。您可以在文本编辑器中编辑它们并删除一些组以排除导致在现代机器上安装失败的组件。设置将 .stf 作为参数之一

该存储库包含一个对我有用的自定义 .stf。它是原始的,去掉了一些东西。它可能缺少其他人需要的一些组件。我将在我更好地解决问题时用更多有关如何编辑它们的详细信息更新存储库。