I have confirmed that the "workaround" works. I did examine setup1.exe, but
I did not change it. The change is made to setup.lst and the changes are
made in a text editor.
I can now generate the problem on my main machine here at home running
win98. Simply delete sysinfo.ocx from your windows system folder and try to
install a vb6 application that uses sysinfo.ocx. (sysinfo.ocx provides
system data to vb6 programs. For example, if you need to read the time or
date from the users computer, sysinfo.ocx would be the interface between
your program and windows and would therefore need to loaded when your ap was
installed). Deleting sysinfo.ocx simply causes the error because
comcat.dll(a file sysinfo.ocx is dependant on) is trying the be registered
and sysinfo.ocx has not been installed.
Our "workaround" involves moving the call for sysinfo.ocx in the setup
routine (which is determined by the text file setup.lst) from the section
labeled [Setup1 Files] in setup1.lst which as you say is copied with a vb6
program, to the [Bootstrap Files] section where comcat.dll is installed.
The [Bootstrap Files] section may be installed with a c program, but what I
do is simply add one file to the list being installed with the c routine and
remove the same file from the section be installed by a vb6 program. I'm
not at all changing the programs installing the application.
One thing I haven't mentioned is that in setup1.lst, the [Bootstrap
Files] and [Setup1 Files] sections contain a list on variable declarations,
eg,
File8 =
@sysinfo.ocx,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/24/98$(DLLSelfRegi
ster),$(Shared),6/24/98 12:00:00 AM,67376,6.0
In our fix, when file are added or removed from one section to another, we
change the numbering scheme in the new lists, making sure it is contiguous,
numbering one through the last file in sequence.
I have confirmed that this fix works but it is not the ideal solution.
The ideal solution would be to modify the program that creates the
setup1.lst file, which I don't believe is setup1.exe but the vb6 Package and
Deployment Wizard, and I don't have the source code to examine. The problem
as I see it now is that comcat.dll was trying to be registered and since it
is a dependant file of sysinfo.ocx, windows looked for sysinfo.ocx, couldn't
find it, and generated the error.
Although this is not the ideal solution, it is an acceptable solution to
me since my customers will not have to deal with it. I can make the changes
on my end and they'll never see it, hopefully.
Again thanks to everyone for your help. -Carl.
register
and
the program would install.
With this in mind I looked a one of the install programs generated by
the Vb6 Package and Deployment Wizard named setup.lst. This file is a text
file that supplies the filenames, install locations, and registration
information for the install program setup.exe. In setup.lst there are to
groups of data with this information, one labeled [Bootstrap Files]
and
one
labeled [Setup1 Files]. In the [Bootstrap Files] section, comcat.dll was
listed but not sysinfo.ocx. Sysinfo.ocx wasn't list until the second
set
of
files labeled [Setup1 Files]. Comcat.dll is file that sysinfo.ocx is
dependent on. The fix I can except is to simple move the file
reference
to
sysinfo.ocx from the [Setup1 Files] section to the [Bootstrap Files]
section. This solves the problem.
I suspect that the problem was that comcat.dll was trying to be copied
and registered before the file dependant on it. Strange one. Once we
understood the problem, I was able to generate the error on a win98 system
simply by deleting sysinfo.ocx from my system folder.
This is a difficult problem for a developed to see and troubleshoot
because installing vb6 0n your machine installs sysinfo.ocx. You won't see
the problem. Thanks to everyone for there help. -Carl
I don't think that is your problem
[Bootstrap Files] are installed by Setup.exe which is a 'C' program
[Setup1 Files] are installed by Setup1.exe which is a VB program
- you have the source for Setup1.exe
There is a bug in Setup1.exe
- something to do with version numbers and dates
My guess is that you have been messing with the source of Setup1.exe
and are using (or trying to use) something in Sysinfo.ocx
In which case your fix of tinkering with Setup.lst would work
- but for the wrong reason
I might be wrong ... but it is worth checking