PDA

Click to See Complete Forum and Search --> : how to do side by side installation with vb6 app


eurowindow
Apr 7th, 2010, 03:59 AM
Hi,

I know that side by side installation avoids dll conflict, but i don't know how to do that in Window.
Earlier, i created a app by vb6 and installed in win XP S2.Now a new version released and i want to do side by side installation this one in the same machine with older version.Is that ok? How to do that?
Please help me.

dilettante
Apr 7th, 2010, 01:39 PM
If only the EXE has changed and there are no application-specific DLLs or OCXs it should be a simple matter of putting one of the two different EXEs on the machine with another name into the same folder:

C:\Program Files\JoeCo\WhizzyApp\WhizzyApp.exe
C:\Program Files\JoeCo\WhizzyApp2\WhizzyApp.exe

Even this can be a little complicated using most formal installation technologies since you will need to have their revision maintenance turned off (so they don't replace the old by the new). They usually don't let the user choose a name to install as either, more likely just the folder.


If there are new application DLLs/OCXs as well as an EXE it gets much more complicated. For example you may not be maintaining interface discipline (using Binary Compatibility until you "break" the interface with changes, then renaming the DLL/OCX Projects, Classes, and UserControls with a version number).

If there are different versions of shared DLLs/OCXs (VB6, 3rd party, or other redistributable Microsoft components) the complexity grows as well.


Instead of using conventional installer techniques one option is the use of isolated assemblies and registration-free COM. This will not work if DCOM or ActiveX EXEs are involved, and many 3rd party components are not easily isolated either. For as long as those factors don't come into play reg-free COM can be used to create "XCopy Deployment" packages.

Such a package is a folder and subfolders containing an isolated version of the EXE, its read-only data files, isolated dependencies in a subfolder, etc.

C:\Program Files\JoeCo\WhizzyApp1\WhizzyApp.exe
C:\Program Files\JoeCo\WhizzyApp1\WhizzyDefaults.dat
C:\Program Files\JoeCo\WhizzyApp1\libs\RICHTX32.ocx
C:\Program Files\JoeCo\WhizzyApp1\libs\MSWINSCK.ocx
C:\Program Files\JoeCo\WhizzyApp1\libs\WhizzObjs.dll

C:\Program Files\JoeCo\WhizzyApp2\WhizzyApp.exe
C:\Program Files\JoeCo\WhizzyApp2\WhizzyDefaults.dat
C:\Program Files\JoeCo\WhizzyApp2\libs\RICHTX32.ocx
C:\Program Files\JoeCo\WhizzyApp2\libs\MSWINSCK.ocx
C:\Program Files\JoeCo\WhizzyApp2\libs\WhizzObjs.dll

These can often be wrapped in a simple installer like a self-extracting archive that expands the files to a temporary folder, then runs a script or small EXE from the expanded archive that prompts the user for the install location, copies the files into place, creates shortcuts, etc.

Since the application doesn't require component registration anymore each "copy" of the application can have its own set of ActiveX libraries that may differ from each other.