this is a short "how-to" that will demonstrate how easily you can extend the powerful
InstallAware IDE with additional pre-requisites.
Why have I done this? I have one application which is still based on the Borland BDE.
I tried the BDE merge modul and dectected a couple of pitfalls with that. The biggest
problem is the fact, that the internal custom actions only run in UI mode. If you do a
slient install they do not work. And this affects the detection of an already installed BDE.
Futhermore the merge module ignores the use count on uninstall.
So I decided to create a new pre-requisite for the BDE. This has a couple of advantages.
The setup is smaller if the BDE is already present thanks to the web media blocks.
I have full control over the install/uninstall process and I can decide if I upgrade an
existing BDE or not. And finally I can fix the silent install issue.
Creating a new pre-requisite requires two parts: You need to create a setup package
for your pre-requisite and you need to create some scripts to check and install this package.
There's a pretty good description of the process on the InstallAware web:
http://www.installaware.com/installawar ... s_view.pdf
Start with this document to get some basic knowledge.
Now some details:
1. For my setup package I created an empty installation and added only the merge module.
2. Next I created a checkbde52 script. This scripts is used to check for the pre-requisite.
Here I check for an existing BDE. I check the registry, a files and the file version.
Do what ever you need here.
3. Then I created the setupbde52 script. This script is responsible for the
installation
of the pre-requisit. I use a file bag to wrap my setup package from step 1 above.
Now comes the tricky part. If checkbde52 found an already existing but outdated BDE
I have the installation path for the BDE. If not I can use the default. Either way I need
to tell my setup package what path to use. But how can I modify this path inside
the merge module? Borland has documented that the merge module's internal
custom action uses the variable
BDE_INSTALL_PATH.E966F0CB_76B3_11D3_945B_00C04FB1760A
for the path.
And now I can put it all together. Using an Install/Remove MSI command I add my
file bag as package file and use an Action string like this:
Code: Select all
ADDLOCAL=ALL BDE_INSTALL_PATH.E966F0CB_76B3_11D3_945B_00C04FB1760A="$BDEPATH$"
Have a look at the attached scripts for more details.
4. Finally create a RTM file. This file specifies any software requirements for this
new pre-requisite together with the script names above.
Copy all 3 files into the InstallAware 6 runtimes folder. If you want to use the attached
scripts you need to create your own setup package with the merge module
from step 1 and specify the path for the file bag/Install MSI in step 3.
That's all. You now have a perfectly working pre-requisit in the great InstallAware IDE.
With a simple click you can add the BDE to any setup you work on.
If you have similar requirements use the attached scripts as a starting point.
Enjoy.
File Attached:
bde_prerequisite.zip