Deployment and Installation with
Inno Setup and ScriptMaker
by Robert Bravery, IT manager & Programmer.

Introduction

On scanning the dBASE news groups, I found many threads concerning problems and difficulties in deploying an application. The problem stems from two areas. Namely, which files do I deploy, and the other more troublesome one is the failure to successfully deploy and update the BDE. The later stems from InstallShield Expressí problem with updating the BDE correctly. At the dataBased Intelligence Inc.ís website is the update for IS and the correct files for the BDE Installation. But if you are anything like me, after downloading and testing both the IS 2.01 update and the corrections from dataBased Intelligence Inc., you might still find that you are having problems. Now I know that these can be overcome. Itís just a matter of understanding how and what IS does on installation.

One good thing that MS has taught us, is that we are never to be dependent on one particular piece of software to accomplish a job. Now there are a number of ways to tackle this problem. The obvious is to find another installer. There are hundreds of installers on the market. Some are good, some are bad, and many might not do what you want them to do. You can also use Winzip. Yes that what I said, Winzip. But the problem here is that you have to know your stuff. You have to know the inner-workings of the registry, how to edit, you have to know what files to deploy, not only with dBASE, but also the BDE, you have to know how to register files. In short, although it can be done, it might not look professional, and it can prove a bigger pain than IS.

Inno Setup

Well, enter Inno Setup to solve our problem. This is a FREE installation program that is available from the authorís site as well as from various others. The beauty about this program, besides being free, is that it is very customisable. It operates and generates its Setup file from a script file that you as the user/deployer generates. Many might think that because this is free that the quality is not up to standard. But having tested this program I am very satisfied that it meets with the highest standard. Anyway the best things in life are free. Air comes to mind. The program doesnít offer the drag and drop functionality that you might be used to from other install programs. Although this might seem like a draw back and might give the impression that the program is not that powerful. All that that is is an impression, in fact the program is quite powerful and has a lot of functionality. There is a GUI application that works with Inno Setup that is discussed later.

You can download Inno Setup from these sites. They have just released Inno Setup 1.3.8. This article is based on the older version 1.2, which are a 16-bit and a 32-bit version. The new version only supports 32 bit.

http://www.jrsoftware.org/isdl.php

The latest version has all the facilities youíre likely to want including:

At Ken Mayerís site, or at one of his mirrors, you can find a whole page dedicated to the Inno Setup and goes into a lot of explanation. I strongly urge you to read this page to get a more complete understanding of Inno Setup and how it applies to Visual dBASE. The explanation of the whole Inno Setup program is beyond this article, and I donít want to duplicate what others have done. This article is just an awareness of a different approach.

http://www.dbase.com/KnowledgeBase/int/innosetup/innosetup_db2k.htm

Does the Inno Setup support the BDE and will it sort out the current problems Iím having? Yes it does support the BDE installation and as far as my test are concerned, I havenít had the sort of problems that I have had with IS. But you need to read the article that Ken wrote to correctly understand this and also to find out what extra files you need for the BDE Installation. The primary is the bdeinstl.dll, which is found inside the bdeinstl.cab, which in turn can be downloaded here if you donít have a copy.

http://www.jrsoftware.org/download.php/bdeinst.cab

From Kenís Site:

To Install The BDE With Your Application

Assuming your application will require the BDE, there are a couple of other files needed:

MiniReg.exe, this is available from Jordanís website, on the Inno Setup page, or you can click on this link and download it directly: http://www.jrsoftware.org/files/MiniReg.exe This file was created by Jordan as well, and is also freeware.

BDEInst.dll - this is trickier. If you check your BDE folder (usually it is in C:\Program Files\Common Files\Borland\BDE), you may find the file BDEINST.CAB ó if you do, use the DOS command EXTRACT to uncompress this file to the BDEINST.DLL file. The command would look like:

    EXTRACT BDEINST.CAB
If you get an error doing this, or the file is not in your installation of the BDE, you can download this file from Jordanís website, but you can ONLY do this using Internet Explorer ó there is something about the way Netscape tries to download this file that messes it up. You can use the same link to the Inno Setup page noted above, or you can click on this link: http://www.jrsoftware.org/download.php/bdeinst.cab. This file is required to install the BDE, and was created by the Borland Database Engine teamÖ

Note: If you canít find this file, contact me (see the end of this document) and I will get it to you, but try other options first, itís not small, and emailing a file of that size is not a good ideaÖ

Be sure to read the section on Kenís site about an example of creating a setup file for the Vesper.

After reading Kenís article you might say to yourself, but I donít fancy this scripting thing its way too time consuming. And in our instant world, isnít there a GUI for this. Well to answer your question, yes there is. I am busy writing one that will run within dBASE, but for the time being there is an excellent GUI scriptwriter created for Inno Setup that is also free and you can download it as well.

http://www.tafweb.co.uk/

Go to the software section and scroll down to download ScriptMaker.

What is ScriptMaker?

Well ScriptMaker is just a program to make all those script settings that you need to create for Inno Setup a little easier. It is a graphical tool, that when correctly used will create a script file that Inno Setup can use to create your setup program. I have used it and itís very intuitive. If you understand the Inno Setup scripting, commands and parameters then this little program is just what the doctor ordered. What this does is create a direct competitive area with regards to IS and creating a successful deploy and installation program for Visual dBASE. ScriptMaker also comes with a tutorial in html or windows help format which you can download at the above site as well.

Following are some of the screenshots of TafWeb Software© ScriptMakerô:

ScriptMaker creates the script with all the settings and parameters required. It also creates it in the correct format for Inno Setup, as well as give you the opportunity to run Inno Setup from within ScriptMaker to create your setup.exe.




I cannot go into all the details of how to create a Installation Setup program for you Visual dBASE program, because that is beyond the scope of this article. What you can do though is go through the ScriptMaker tutorial and help files as well as go through the help file of Inno Setup after reading Kenís document, to get a good grasp on how this works. It definitely is an alternative to IS and it works like a charm.

If you have read the article at Kenís site you would have noticed that it contains an example of a setup script for Inno Setup to create an instalation program for the Vesper Application. If that script is saved correctly, i.e. as an Inno Setup script with an iss extention you can use the ďReopen ScriptĒ Button to open the Inno Setup Script in ScriptMaker and see how those settings are viewed in ScriptMaker. Alternatively you can load or reopen the example in the sample32 folder of the Inno Setup directory. There are two sample scripts called Sample1.iss and Sample2.iss. Use either of these to test and experiment and learn from.

Conclusion

This is not meant as a tutorial on deploy and installation but just an article to create an awareness of the opportunities that are out there on the net of alternate means of accomplishing a task.


Note: The author would like to thank Mike Trout, my proof-reader, for the improvements he brought to this text.