I have a vb6 activex document project and I need to create an msi package (thats what is the requirement since it has to be deployed thru active directory) that runs without any user interface and user intervention. I followed these steps:
-
I created an msi project using visual studio installer and removed all the user interfaces. Added all the vbd files manually to the project, compiled it. When I run the msi, it intalls all the files without prompts but the application doesn’t run.
-
I created a package using package and deployment wizard, then opened the source code of vb pdw project, commented all the message boxes, assigned default values where required. Then compiled setup.exe file and copied/overwrote it with the setup.exe on the install package created earlier. When I run it from command prompt like this ‘setup.exe -s install.log’ it installed the application without prompts, works well. And the application runs well after installation.
-
So I decided to create an msi package using visual studio 2008 and added the above created install package (using package and deployment wizard). In custom action I set the setup.exe to run with ‘-s install.log’ arguments. I need one registry entry that holds the App path, so I added it on the registry settings section.
Another requirement is I need to run another self-extracting exe after the installation. And that self-extractor will look at the above registry entry and extracts (overwrites) the file on the App path.
So using custom action, I set the update.exe to run after the installation.
Now, when I run the msi, it runs well, and after installation it runs the update.exe, everything works well; but only sometimes. I couldn’t predict when it works and when it doesn’t. When I tried the same msi on few other machines, it worked on some and not on others.
And when I checked the ‘Add or Remove programs’ there were many entries for this App.
I have been struggling with this msi project for a while and now I feel helpless. I don’t know what I’m doing wrong. I would appreciate if anyone could point me in the right direction.
Any other way to create an install package for vb6 activex document project without prompts?
This works for me using MSI to install an ActiveX dll document:
This reply is a bit late, but I also struggled with this for about
a year before getting it to work. The key seems to be in registering the ActiveX
exe or dll when installing on another PC. The following works for me; am only
listing steps for a dll as still haven’t succeeded 100% with exes:
Be sure to use the safe VB system files (download a zip file [vb6sp6sys.zip] of them from http://www.jrsoftware.org/iskb.php?vb) in place of those
generated by VB’s Package and Deployment wizard.
Sub Main) shown below in the code section. Because Internet Explorer is the “container” for your ActiveX document, this little exe uses a version of it
(IE) to load your UserDocument1.vbd, DEPENDING ON WHICH OS you are using. Windows 7 and, I assume Vista, use a different version of IE by default, which doesn’t seem to want to run an ActiveX document. But, in their Program Files (x86) there is a version of IE that will – hence the test on whether the (x86) folder exists or not; if not it assumes this is a lower version of Windows and runs using the normal IE. Call this small executable something like “SilentStartUp_ByOS.exe”
the native library of your DLL and any included OCXs. There is a free version
of Advanced Installer, but it doesn’t have this capability.
Note: There may be other installation packages that will do this also, but
Advanced Installer is the only one I know about. I’m an Inno fan, but couldn’t
find any way to do this with Inno.
your Install package. Assign an icon to the exe created in 3. using Advanced
Installer and make it a shortcut to start your program.
for the sake of bypassing Security issues which are very strict on Win7
and Vista, not to mention if installed on a company intranet.
When all is done, because your dll was registered, IE should be able
to start up your ActiveX document.
Code: