PDA

View Full Version : Installing Visual Basic 6 Support Files



BobK
04-02-2008, 08:06 AM
I am trying SB Developer to create an installer for my Visual Basic 6 product. I've looked in the Manual and haven't been able to determine the following;

I can see how to add the VB6 runtimes but have a question;

The VB6 runtimes appear to all get installed in the same direction as my application. That is undesirable. It looks like I can install them elsewhere; but if I do will there be any steps needed to 'register' them? Will my program be able to 'find' them?

I have experience with Install Shield Express and that product by default seamlessly and invisibly installs the VB runtimes "somewhere else" (windows/system???) and then registers them.

Does SetupBuilder Developer provide something similar, or if not how do I manually do it?

Please advise - thanks!

Bob

linder
04-02-2008, 08:31 AM
Bob,

Do you mean the VB runtimes installed by the SetupBuilder Visual Basic 6.0 Core PreRequisite? No, the VB6 runtimes are not installed into the application folder. Why do you think this is the case?

Friedrich

BobK
04-03-2008, 12:10 PM
Hi Friedrich,

I built one installer and did a trial 'installation' with it and it successfuly installed the program and when I looked in the installation directory all I saw was my executable file.

Then I went back to SB and did a 'Dynamic Scan' of my program and built a new installer and ran it. This time when I looked in the installation directory I still saw my executable, plus a lot of files that look like part of VB6;

mscomct2.ocx
commctl32.ocx
tabctl32.ocx
and others...

Plus a larger number of files that I don't recognize;

PENUSA.DLL
dwmapi.dll
tiptsf.dll
and too many more to type...

I should mention the platform I did the test install on had previously had a VB6 program installed on it, so maybe it already had some stuff on the machine.

In any event my baseline question is;

- What do I need to do to make sure all support files needed to run my VB6 app are installed, if not already present on the target machine, and can it be done without inserting them into the same target directory as my executable is going into?

Thanks a lot!!!

Bob

linder
04-03-2008, 11:42 PM
Bob,

Dynamic Scan monitors your system as you execute an application, automatically determining which 32-bit DLLs and OCXs (dependency files) are used by the application. This is only to help you find out which dependency files are called. You (as the developer of the application) have to decide which files have to be redistributed. And you should never ever redistribute any "system" file from your own system because there might be a difference between operating systems.

For example, the penusa.dll component is the Microsoft USA Handwriting Input UI. You application (or a component used by your application) calls into this dll. So the question is, do you really have to redistribute that file and do you have the rights to distribute it. Only you, the developer, knows the answer.

Or dwmapi.dll. This is a Window Manager API from Microsoft Corporation belonging to Microsoft Windows Vista. You application makes use of this on Vista but it does not mean that you have the right to redistribute it nor does it mean that your application needs it to run (e.g. on XP, etc.).

Does this help?

Friedrich

linder
04-04-2008, 01:04 AM
By the way, and it depends on the supported operating system. It's possible that you have to distribute a different set of files depending on the version of the supported operating system (e.g. if you also support Windows 95/98/Me/NT instead of only XP/2003/Vista/2008).

Friedrich

BobK
04-04-2008, 05:18 AM
Well, I certainly appreciate the response but I have to say that, unless I'm missing something, this discourages me from buying SB. It encourages me to stay with my old copy of IS-Express.

That had a much more 'turnkey' approach to installing a VB app. At the beginning of a new project you checked off that it was a VB app and IS did a lot for you automatically. I did have to manually select any support files unique to my program, but it completely and transparently handled anything else that was 'core' to a VB6 application.

Still - I haven't quite written off SB; can you provide me some reasons why I should go with SB over IS? Please keep in mind my approach is 'keep it as simple as possible'. Although I've sold my software products on the internet for years, I am actually not by profession a programmer and do not delight, as some people do, in working in intricate detail or doing 'power' things. I want to distribute my products the fastest and easiest way possible.

Thanks a lot,

Bob

BobK
04-04-2008, 05:22 AM
More..perhaps I missed...when I use the Redistributable Manager in SB to use VB6, does that mean SB will take care of any/all core functions VB6 needs? Does it do it by initiating download off the internet onto the customer's target system? (The "sb6" file it initially created only seemed large enough to hold my executable).

Thanks again

linder
04-04-2008, 05:31 AM
Bob,

Hmm, to be honest, I don't know exactly what you mean. What does this have to do with InstallShield Express, SetupBuilder, or any other installation system ;)

The Dynamic Scan feature tells you exactly which files were used during the execution of your program. Not more and not less. The same files will be displayed if you use the Dynamic Scan feature from the InstallShield 2008 flagship. Now you (as the developer) have to decide which files should and can be distributed (e.g. which files are already core components of different OS versions, do you have the license rights to distribute, etc.). Dynamic Scan cannot decide it nor can InstallShield Express <g>. And there is a huge difference between Windows 95, 98, Me, NT and XP, 2003, and especially Vista and Windows Server 2008.

If you only need the Visual Basic runtimes on the target machine then you only have to mark the "Microsoft Visual Basic 6.0 Redistributable" Core PreRequisite checkbox and you are done. Then add your application files and ship. That's it. Just keep in mind that you have to follow the new rules if you distribute to Vista and 2008 (means, your application and installation have to be Vista-aware).

But if InstallShield Express works for you, then I would not switch to another system (if I were you).

Friedrich

linder
04-04-2008, 05:37 AM
Bob,

You use the Redistributable Manager to download standard redistributable runtimes from our servers, so you can use them in your projects.

If you enable the "Microsoft Visual Basic 6.0 Redistributable" Core PreRequisite then this will install the VB6 SP6 runtime files on the target machines.

http://support.microsoft.com/kb/290887

Please note that the .sb6 project file compiles into a native Windows setup.exe executable. You distribute this setup.exe to your customers, not the .sb6 project file.

If you need further assistance, please let me know.

Friedrich