General discussion


Package and Deploy in VB6

By amartin ·
I've recently had my first experience with distributing a beta version of a freeware VB6 program I created worldwide and it's left a bad taste in my mouth. I used VB6's Package and Deployment Tool to create the setup files. I've often used it deploy apps on workstations at my place of employ. In nearly all those attempts the deployment worked exactly as planned but these are workstations where we control their full configuration and installed components.

The emails started rolling in immediately from all over the world about install failures where the install balked at version imcompatibilities and requested the user to reboot. That reboot resulted in them getting nowhere. Now this wasn't a terribly complicated program that required a bunch of aftermarket controls and dlls. For the most part, I was using the controls and references that came packaged with VB6 and the latest service pack.

Why in the world can't Visual Basic, a Microsoft product, produce a deployment package that will run on their own operating systems? For crying out loud, should developers have to have this in-depth knowledge of every possible computer setup out there to ensure their app will install properly? What a flawed system. I should be able to write code, compile it and deploy it using the defaults the package and deployment wizard set for me without having to know the dependencies and compatibilities of the latest Windows service packs and patches.

How have the rest of you dealt with these problems in the past?

Art Martin

This conversation is currently closed to new comments.

16 total posts (Page 1 of 2)   01 | 02   Next
| Thread display: Collapse - | Expand +

All Comments

Collapse -

Yes, threw it in the bin

by Tony Hopkinson In reply to Package and Deploy in VB6

InnoSetup is what I used. It's free and works. Where as Package and deploy is an added extra and it doesn't.
The other option is of course to stop using VB and pick a product that produces a stand alone executable instead.
Innosetup will let you customise the setup, but with it or VB's mediocre effort you need to test it on several different target platforms.

Collapse -

Re: Yes, threw it in the bin

by jeffrey_a_king In reply to Yes, threw it in the bin

Yes, give InnoSetup a try. I have used it to deploy six different VB6 apps to customers running Win95 to XPSP2. It's simple and it works...

Collapse -

Yup, I'm on that range of OS's

by Tony Hopkinson In reply to Re: Yes, threw it in the ...

Sorts out the registering, does restart on replace, version checking, lets you choose ocx/dlls you are not using on your system so you can distribute old ones. Groups and icons
You can also do your own tests for things like MDAC version, and database drivers. Also Kill the old application/service when doing an update.
And it's free.
You do need to try it out on each os though.
Took me about ten iterations to get it right, having never used it before but's it's solid now.
It even gives you warnings when you might screw up the target system.

Collapse -

I absolutely agree

by ChuckSomerville In reply to Yes, threw it in the bin

Yes, Tony - I agree. Inno Setup is all I use any more. For one thing, after all the user-controllable details (like put icons wherever, put your bitmaps on the setup windows, and all the rest), it will make a single .exe file to distribute. (No cabinet, setup, inf, etc, etc).

Inno Setup is gold.

Collapse -

MS S&amp Package

by jck In reply to Package and Deploy in VB6

It is probably where you made the deployment without including a DLL from your machine that is newer than the machine on which it's executing. I've see that more times than I care to admit.

And yes, the deployment wiz VB6 and VB .NET both. Working with either to get a universal deployment takes a herculian effort.

You're absolutely right about how you should be able to create a deployable app easily. But, MS didn't give us the easy way out as always.

I'd have to see exactly what you had error wise, but usually it involved including some DLL in the package so that it installs in the app directory so it doesn't go to the default system directory and look for the library.

And is a huge pain in the arse...

Collapse -

by amartin In reply to MS S&D Package

It appears that VB6 now has a service pack 6 available for it and initial testing on it has gotten rid of a few errors I encountered with installs at work. I'll definitely look into that aftermarket product. As always, outside developers always seem to have the edge on the insiders at Microsoft. They're not burdened with that drive for profit.

Art Martin

Collapse -


by Rob C In reply to MS S&D Package

There are 3 things I do to avoid those problems -

1) KISS Keep it simple, and don't use anything but the intrinsic controls.
That includes avoiding the extra controls that come with 'Pro'.

2) Use User Controls (CTLs), which can be built into your pgm.

3) If you break Rule 1 then:
Limit the extra controls you do use, and build a stand alone installer for them.
It is a once only exercise to get that correct.
This avoids subsequent worries when compiling/distributing your real apps.

Collapse -

I also distribute software worldwide

by doug In reply to Package and Deploy in VB6

The problem you spoke of (install your software, Windows says "system files out of date, need to reboot") in a continuous loop only occurs with Windows 2000, and only if the user has not updated his system. When this occurs, I point the user at the Win2K service pack, they install it, and the problem goes away; the user invariably thanks me, because they didn't know there were any updates (!).

A more serious problem is the difference in time zones, especially with data files that get updated, but do not have inherent version numbers. VB P&DW Setup knows nothing about universal time.

Since Microsoft provides the source for the Setup1 program, I modified mine to do things I wanted, like automatic run of the program just installed. I get around the date/time problem with checksums. I found that WinZip (and others) do not handle dates and times correctly either, as the Zip specification only allows for local time, it does not allow for worldwide distribution across timezones. Checksums are the solution here.

I also set up 4 test enviroments (98, ME, 2000, and XP), and test my software on each. I have a multi-boot el cheepo system that I partitioned with Partition Magic, and I use Boot Magic to turn a bootable partition on or off. This works well.

Lately, I have also been using Connectix Virtual PC, which is available on the peer-to-peer file sharing networks. This lets you run the test enviroments on your own PC, without buggering anything. Microsoft bought Connectix, and brought out their own version, but it no longer supports Win95 or 98, so it is useless to me.

The bulk of the world uses Windows 98, but there are a few ME, lots of 2000, and more and more XP installations, so it is best to test in all environments.

BTW, the source provided by MS VB6 for the Setup1 program is, without a doubt, the worst written program I have ever encountered. It is a very poor example of programming, and whoever wrote it, and whoever approved its use in VB6, should be shot.

Collapse -

by jnelson In reply to I also distribute softwar ...

This is a little off the discussion and I apologize for that.

"The bulk of the world uses Windows 98 ..."

Does anyone know a source for data on install bases (version %) for Windows and/or Office?

Collapse -

Where do you get that beauty ?

by landesjoe In reply to I also distribute softwar ...

Is there a URL where you can get the source Code? I would love to see some MS code.

Back to Web Development Forum
16 total posts (Page 1 of 2)   01 | 02   Next

Related Discussions

Related Forums