0

我有一个生成 .EXE 文件的 Visual Basic 6.0 SP5 EXE 项目。这个项目引用了一些自定义 DLL(也是用 VB6 项目制作的)。
这个 EXE 和 DLL 在另一台机器上运行正常。

现在我对 EXE 源代码进行了一些更改。这些更改在 VB6 IDE 中运行良好。然后我通过运行 Make 创建 EXE 文件。生成的 EXE 文件在我的机器上运行正常。接下来,将该 EXE 文件复制到另一台机器,覆盖原始文件,然后运行它,没有任何反应。据我所知,EXE 甚至没有启动,而且我没有看到任务管理器中出现任务。

不知道这里发生了什么。有人见过这种行为并知道这里发生了什么吗?

4

4 回答 4

2

您是否修改了您依赖的 DLL?尝试复制自定义 DLL。

于 2009-03-04T07:22:50.360 回答
1

我肯定会遵循有关在事件查看器中寻找原因的建议。但我认为您还需要获得适当的部署方法。

首先,我会为 VB6 安装服务包 6,以便您使用最新版本。然后我会做一个合适的msi安装程序。

为此,您需要:

来自 MS 的 Visual Studio 安装程序 1.1

合并 VB6 SP6 的模块

合并模块需要从 Visual Studio 安装程序附带的现有合并模块中提取出来,C:\Program Files\Microsoft Visual Studio\COMMON\Tools\VSInst\BuildRes 然后我将创建一个 msi 安装程序并使用它来部署您的应用程序。它将为您注册 dll 并确保已安装依赖项。

要创建安装程序:

1) Open visual studio installer
2) Pick the VB Installer package type in the wizard
3) Change the name to the name of your project
4) Change the location to where you want the installer package to be created (I typically create a folder under the project called Install)
5) Choose create Installer, not merge module (unless you want to package up dependencies for a subproject)
6) Pick the existing VB project to deploy
7) Under Files on right add any other files that aren't straight dependencies (documentation or other related files)
8) Under Build Menu -> Build Configuration change it to release.
9) Click File System, then Application Folder, change the default install folder to be <company name>\<app Name>
10) Right click and Delete unneeded/bad dependencies.  For example MDAC.msm doesn't normally need to be deployed by the app.
11) Change ActiveX dlls to be self register in properties.
12) Under File System, User's Start Menu - Add folder hierarchy User's Start Menu -> Programs -> <company name> -> <app name>
13) Drag system created shortcut to app from User's Start Menu to the App Name folder.  Rename as appropriate.
14) Add shortcut to user's desktop folder if desired
15) Add any other file shortcuts (say to documentation) in the App Name folder or user's desktop
16) Under User Interface, click all the leaf nodes (like the welcome screen) and change the banner bitmap if you have one.
17) Configure Project Properties as appropriate (I fill in support information and update version number)

Build -> Build

THe msi file will be created in a subfolder of the install folder.
Whenever you make a new exe you just open the existing visual studio installer project and choose build->build.  It will create a new msi for you.
于 2009-03-04T17:05:06.297 回答
1

值得确保两台机器上的自定义 DLL 相同,并且它们已使用regsvr32注册。尽管如果不是,您应该会收到一条错误消息,否则程序中会出现错误,而不是您所描述的。

检查启动过程中的代码 - Sub Main() 或主窗体的 Form_Load() 事件,具体取决于您的项目设置。如果发生错误,请确保它不会退出程序。

检查任何事件查看器消息(基于Valentin Galea 的这个答案,它帮助诊断 VB6 应用程序在损坏的数据库文件上保释)。

将日志消息添加到启动过程。本机 VB6 App.LogEvent方法可能很有用。确保程序中的第一行是日志记录语句,以便您可以检查它是否完全启动。如果您在启动过程中有错误处理程序,请确保它在执行其他任何操作之前记录错误详细信息。

于 2009-03-04T08:30:16.533 回答
0

您可能需要运行REGSVR32以在这些 DLL 或 EXE 中注册 COM 对象。(VS IDE 会自动为您执行此操作)

于 2009-03-04T07:23:01.560 回答