EXE-файл проекта VB6 не запускается - PullRequest
0 голосов
/ 04 марта 2009

У меня есть проект Visual Basic 6.0 SP5 EXE, который приводит к .EXE-файлу. Этот проект ссылается на некоторые пользовательские библиотеки DLL (также созданные в проектах VB6).
Эти EXE и DLL работают нормально на другом компьютере.

Теперь я внес некоторые изменения в исходный код EXE. Эти изменения работают нормально в VB6 IDE. Затем я создаю EXE-файл, запустив Make. Сгенерированный EXE-файл работает нормально на моей машине. Затем, при копировании этого EXE-файла на другой компьютер, перезаписи исходного файла и последующего его запуска ничего не происходит. Насколько я могу судить, EXE даже не запускается, и в диспетчере задач не отображается задача.

Не уверен, что здесь происходит. Кто-нибудь видел такое поведение и имеет представление о том, что здесь происходит?

Ответы [ 4 ]

2 голосов
/ 04 марта 2009

Вы модифицировали библиотеки DLL, от которых у вас есть зависимости? Попробуйте также скопировать пользовательские библиотеки DLL.

1 голос
/ 04 марта 2009

Я бы точно следовал совету по поиску причины в программе просмотра событий. Но я думаю, что вам также нужно получить правильный метод развертывания.

Сначала я бы установил пакет обновления 6 для VB6 , чтобы вы были на последней версии. Тогда я бы сделал правильный установщик MSI.

Для этого вам понадобится:

Visual Studio Installer 1.1 от MS .

Объединение модулей для 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.
1 голос
/ 04 марта 2009

Стоит убедиться, что пользовательские библиотеки DLL идентичны на этих двух машинах, и что они зарегистрированы в regsvr32 . Хотя в противном случае вы должны получить сообщение об ошибке, иначе в вашей программе возникнет ошибка, а не то, что вы описываете.

Проверьте код в своей процедуре запуска - Sub Main () или событие Form_Load () вашей основной формы в зависимости от настроек вашего проекта. Убедитесь, что программа не выходит из программы в случае ошибки.

Проверка на наличие сообщений для просмотра событий (на основе этого ответа от Валентина Галеа, который помог диагностировать приложение VB6, загружающееся из поврежденного файла базы данных).

Добавление сообщений регистрации в процедуру запуска. Родной метод VB6 App.LogEvent может быть полезен. Убедитесь, что первая строка в программе - это оператор записи, чтобы вы могли проверить, запускается ли он вообще. Если у вас есть обработчик ошибок в процедуре запуска, убедитесь, что он записывает подробности об ошибках, прежде чем делать что-либо еще.

0 голосов
/ 04 марта 2009

Возможно, вам нужно запустить REGSVR32 , чтобы зарегистрировать COM-объекты в этих DLL или EXE-файлах. (VS IDE сделает это автоматически)

...