Wiki Home

InstallShield With VFP

(Updated: 2001.04.17 02:40:19 PM)
Namespace: VFP
Mike Helland will show how to use InstallShield to distribute a VFP app.
Note: Install Shield Express comes in the VFP 7.0 CD but as a separate program (IOW, must be installed separately)
Install Shield Express Full Version (ISE) (a "limited" version will ship with VFP. How limited is being worked out as of this writing - before VFP 7.0 is out)

How does it compare to the VFP setup wizard?
I have used the VFP setup wizard for the few (4) apps that I have needed to distribute. It was simple, and it worked. One app used an active-x control, and that installed fine. One app required some fonts to be installed. I created a 2nd VFP app that would install the fonts, and made that a post setup exe. That wasn't so simple (debugging was a big pain), but eventually it worked too.

Here is what I have to look forward to using ISE:

1. You don't need to copy all of the files to be distributed into a separate dir. ISE lets you specify which files are to be distributed, and where on the target system they go.

2. You can save the configuration of your distribution. VFP saved it too, but I think it was in an .ini file in the distribution dir. Where ever it was, it seamed that I was often having to re-enter the same info. I may have been deleting it as part of my "make a clean distribution dir" process.

3. It will install not only selected ODBC drivers, but DNS's too.

4. It will know where the font folder is. I am not sure if that means that just putting the font files in there is all that is required. (I have not tried this.)

5. Allow the user to pick what "features" they want installed. Much like the typical options: normal, all, light, custom. Picking custom will allow the user to further tailor what is installed.

6. Upgrades: It can detect a previous install, and based on the version take different actions.

7. It can store things to the registry, ini files, and set environment variables.

This is not the complete list of features, but the ones that I think will be important to VFP developers who need to distribute apps.

Carl Karsten

[21:13] {MikeHelland} I'm gonna talk a little bit and demostrate InstallShield Express 3.0 at the same time

[21:14] {FredTaylor} I'm logged on to the java thingie, but what happens there?

[21:14] {DavidStevenson} Hey this is great, we get to see all the stuff you erase before entering...

[21:14] {MikeHelland} One of the reasons its handy to know this product is because VFP7 will now ship with IS Express for VFP

[21:14] {CarlKarsten} Fred - you should be able to see what Mike is doing on his screen

[21:14] {MikeHelland} Its dumping that old VFP Setup wizard

[21:14] {DenisChasse} One question. How are you going to log that presentation?

[21:14] {FredTaylor} OK, got it.

[21:15] {CarlKarsten} good question....

[21:15] {MikeHelland} So, here we go, I downloaded and installed IS Express 3 from installshield.com

[21:15] {CarlKarsten} Mike may have to do screen shots up the watooze later...

[21:15] {MikeHelland} I'll just have to be thorough enough in my description that its ok

[21:15] {CarlKarsten} right mike?

[21:15] {MikeHelland} So, after I installed IS, here's what I brought up

[21:16] {MikeHelland} This doesn't look totally cool on an 800x600, but we'll make do

[21:16] {MikeHelland} First things first, let's start a new project.

[21:16] {MikeHelland} I'm gonna be making an install routine for the sample Tastrade app

[21:16] {MikeHelland} So, lets call it tazsetup

[21:17] {MikeHelland} No over on the right are my setup types

[21:17] {MikeHelland} With VFP7 I'm not sure if you will see a VFP setup on the right or not, but for now we'll use a blank one

[21:17] {MikeHelland} Notice that there is a wizard for VB

[21:17] {CarlKarsten} Can you make the left and middle column smaller?

[21:18] {MikeHelland} Middle isn't a column

[21:18] {MikeHelland} And as you see, the left needs space

[21:18] {CarlKarsten} and I see there is lots in the left now...

[21:18] {CarlKarsten} Never mind..

[21:18] {MikeHelland} Ok, you'l see I have a bunch of numbers and circles on the left side

[21:18] {MikeHelland} Thats my app

[21:18] {MikeHelland} IS Express gives you a very easy, "bulletproff" checklist format for creating these setups

[21:18] {MikeHelland} So, lets just start at 1

[21:19] {MikeHelland} Here's the gen info tab, most of it is self explanatory

[21:19] {MikeHelland} Name, Author, blah blah blah...

[21:19] {MikeHelland} You'll notice there is an icon property

[21:19] {MikeHelland} Tha'ts what is displayed in the Windows 2000 control panel under add remove

[21:20] {MikeHelland} Also in the Add Remove CP are the Change and Repair buttons

[21:20] {MikeHelland} Which you can set right underneath

[21:20] {MikeHelland} Those look like this in Windows

[21:21] {MikeHelland} Also available in this section are some GUIDs

[21:21] {MikeHelland} They let you manage upgrade paths and things like that in your install

[21:21] {MikeHelland} Thats because IS Express creates install routines for the Windwos Installer Engine

[21:22] {MikeHelland} So just about everything in WInstaller you can modify in InstallShield

[21:22] {MikeHelland} Next is the features item

[21:22] {MikeHelland} This is where you can classify the components in your setup, we'll create some as an example

[21:22] {MikeHelland} Since this is the Tastrade install, lets include Help and Reports as features

[21:23] {MikeHelland} I'm gonna right click on "Features" and add some new ones

[21:23] {MikeHelland} Notice the properties on the right

[21:25] {MikeHelland} There is an Advertisement property for features

[21:26] {MikeHelland} That means your app can do type of "Install When needed' things Office will do

[21:26] {MikeHelland} It requires some interaction between the install database and the app

[21:26] {MikeHelland} Now that we have 3 features, the always install features, plus the Help and Reports

[21:27] {MikeHelland} We can add those to the Setup Types

[21:27] {MikeHelland} Here's where we define whicih features belong to "Typical" and "Minimal" installs

[21:27] {MikeHelland} You can select which types you want on the left, and what belongs to them on the right

[21:28] {MikeHelland} You can also have sub features to features if you'd like

[21:28] {MikeHelland} Next is Upgrade paths, this is where you can do some fun stuff when you need to update existing versions of apps

[21:29] {MikeHelland} You can specify the low and hgh range of the versions that apply to upgrade paths

[21:29] {MikeHelland} Not very important, if you ask me though

[21:29] {MikeHelland} Now, the usable stuff

[21:29] {MikeHelland} Files, this is where you define the files you ship

[21:29] {MikeHelland} You can select the feature you're adding a file to using the combo at the top

[21:30] {MikeHelland} I'll add the reports here

[21:30] {MikeHelland} I need to create a folder in my install

[21:30] {MikeHelland} I've got alot of folders to choose from

[21:30] {MikeHelland} One thing IS Express does well is handles variables

[21:30] {MikeHelland} You know that not everyone has the same Windows folder, or program files folder, so IS defined variable foldernames

[21:31] {MikeHelland} One folder name is the [INSTALLDIR] which is the path where the usre will install your app

[21:31] {MikeHelland} So we'll add InstallDir to the Reports feature, and a subdirectory for the reports themselves

[21:32] {MikeHelland} Now, I can drag files from any explorer window into that folder

[21:32] {MikeHelland} I can also set the properties of each of these files

[21:33] {MikeHelland} I could define that my file only installs on a certain OS, or will never overwrite

[21:33] {MikeHelland} There are also Registration options for COM servers and activeX controls

[21:33] {MikeHelland} Another featuare is dynamic linking in folders

[21:34] {MikeHelland} I could set a folder up to automatically synch the folder on mysystem with the install folder, so I don't need to remember to add any new files to the install if I forget

[21:34] {MikeHelland} Lemme, quick add the rest of the Tastrade files

[21:35] {MikeHelland} Now you saw I just added the Program files and the data,finally the help

[21:35] {MikeHelland} Next,I have more options to link my files with my features

[21:36] {MikeHelland} Now, the Merge modules

[21:36] {MikeHelland} Actually, before that

[21:36] {MikeHelland} In VFP6, you would need to add the runtime files

[21:36] {jeremydee} Sorta both, been meaning to drop by for a while now

[21:36] {MikeHelland} Most likely as there own feature

[21:36] {MikeHelland} And you would choose the predefined folder WindwosSystem to put them in

[21:36] {MikeHelland} Now, the merge modules

[21:37] {MikeHelland} With this I can automatialcly use installs that have been predefined

[21:37] {MikeHelland} For example, MSDE, or ADO, or DCOM, or maybe just an ACtive X

[21:37] {MikeHelland} You can also merge whole runtimes

[21:37] {MikeHelland} You see Access is available there

[21:38] {MikeHelland} I would imagaine VFP will be one of these options in our version

[21:38] {MikeHelland} You can also define which featuers these modules belong too

[21:39] {MikeHelland} There is also a dependicies tool, which will do some searches in your files for things you may have missed

[21:39] {MikeHelland} But I haven't gotten them to work to well with VFP projects

[21:39] {MikeHelland} Maybe later..

[21:39] {MikeHelland} Next are some system properties

[21:40] {MikeHelland} Configuring the system

[21:40] {MikeHelland} You get a nice GUI way to add shortcuts to your install

[21:40] {CarlKarsten} hang on, I gota question

[21:40] {CarlKarsten} back on setting up the files to install

[21:40] {MikeHelland} Say I want to add a shortcut to the desktop and the programs menu

[21:40] {MikeHelland} Ok

[21:40] {CarlKarsten} can you do wildcards, like *.fxp

[21:41] {MikeHelland} Yes, thats apart of the dynamic linking thing

[21:41] {CarlKarsten} so that it will always pick the fxp...

[21:41] {CarlKarsten} nice

[21:41] {MikeHelland} Though, I think it only lets you do extensions

[21:41] {CarlKarsten} fine with me..

[21:41] {DenisChasse} Is that the install shield that we're going to have with VFP7? A full version or are we going to have an almost unusable version to force us to get the big thing

[21:42] {MikeHelland} There I just included all reports, but not the backup files

[21:42] {CarlKarsten} denis - we will just have to wait and see

[21:42] {MikeHelland} Denis, it will have a lot of this, but it will just be a light version

[21:42] {CarlKarsten} but they shipped and a few beta testers have already received it

[21:42] {CarlKarsten} so we will know soon

[21:42] {MikeHelland} NDA? :-)

[21:42] {MikeHelland} Back to the shortcuts

[21:43] {MikeHelland} Notice I can add a shortcut and play with all its properties that Windows will use

[21:43] {MikeHelland} Not to bad

[21:43] {MikeHelland} The registry works the same way, I can look at it like a tree and add everything I want

[21:44] {MikeHelland} And so on

[21:44] {MikeHelland} ODBC gives you a handy checklist of what you want

[21:44] {MikeHelland} So thats very nice

[21:45] {CarlKarsten} yes it is...

[21:45] {MikeHelland} INI is cool too, because it lets you add variables from the install

[21:45] {MikeHelland} I can insert the username chosen during the install and add it to my ini

[21:46] {MikeHelland} And it takes care of the rest

[21:46] {MikeHelland} Also in there are File Extensions you want to register, and Envronment variables

[21:46] {MikeHelland} Now for the cosmetic parts

[21:47] {MikeHelland} I can choose which of the standard Windows installer screens I see

[21:47] {MikeHelland} What they say, and change some properties

[21:47] {MikeHelland} Below that is billboards, thats the sort of "Ads" you see in install routines, thats just a file picker, you can show any BMP you want

[21:47] {CarlKarsten} MIke, this is the demo you can download?

[21:47] {MikeHelland} yes

[21:48] {MikeHelland} 60 some mbs though

[21:48] {CarlKarsten} what is the limitation?

[21:48] {MikeHelland} And below that is Text and Messaegs

[21:48] {MikeHelland} Limitation is your installs pop up and say its unregistered

[21:48] {MikeHelland} And it expires after 30 days

[21:48] {CarlKarsten} not bad at all

[21:48] {MikeHelland} Text and Messages is cool because you can change any message in the install to whatever you want

[21:49] {MikeHelland} Which means you can create rather specific and localized installs

[21:49] {MikeHelland} You can also change the font they're in

[21:49] {MikeHelland} Now amore technical piece of the Install

[21:49] {DougWhite} I have a copy of InstallShield 6.2 aqnd the interface is not nearly as intuitive as the one you are showing

[21:49] {MikeHelland} Support Files, custom actions, and system requirements

[21:49] {MikeHelland} This is IS Express 3.0

[21:49] {MikeHelland} The one that used to look like a notepad :-)

[21:49] {DougWhite} I see

[21:50] {DougWhite} Impressive! Looks like installs will be a snap from now on! {g}

[21:50] {MikeHelland} This acutually creates Windows Installs, Doug, and will look similar to what VFP7 ships in replacement of the Setup wizard

[21:50] {MikeHelland} Windows Installer, installs, rather

[21:50] {MikeHelland} Or somethign confusing like that :-)

[21:50] {DougWhite} You cannot imagine how much time I have wasted with install Shield 6.2

[21:51] {CarlKarsten} I am sure the MS acronym dept is working hard

[21:51] {MikeHelland} Ok, lets say our app can only be installed on Windwos 2000 and 256mb of RAM

[21:51] {DougWhite} I have windows installer, but have never tried to use it

[21:51] {MikeHelland} This is all you need to do

[21:51] {DougWhite} Sorry, back to the subject at hand

[21:51] {MikeHelland} Well, Windows Installer and this IS Express version create installs for the same engine that ships with Windows 2000

[21:51] {MikeHelland} It used to be different, now its all one engine

[21:51] {MikeHelland} Anyways, requirement :-)

[21:52] {MikeHelland} That's the system requirements

[21:52] {MikeHelland} Here in Custom actions you can call at any point in your install an EXE of DLL Function

[21:52] {MikeHelland} I don't know if it supports COM calls or not, I haven't found it

[21:53] {MikeHelland} These files can be things that already exist on the system, or you install

[21:53] {MikeHelland} You can also include them as support files, only used for the install

[21:53] {MikeHelland} I guess some people just like that BMP, I dunno

[21:53] {MikeHelland} Anyways, finally, lets build this bad boy

[21:54] {MikeHelland} Now you can do this for any media type you want using Custom

[21:54] {MikeHelland} But since Internet is how I like to go, I'll use single image

[21:54] {DougWhite} yeah, my install requires 3 CDROMS

[21:54] {MikeHelland} There are some properties, but they look good

[21:55] {MikeHelland} Wow! This includes several DVD types you can use too

[21:55] {MikeHelland} ANyways, build

[21:55] {MikeHelland} Yay! No errors

[21:55] {MikeHelland} Now we can test if we want

[21:56] {MikeHelland} But we are real programemrs, testing is for users

[21:56] {MikeHelland} We'll just build

[21:56] {MikeHelland} Or make the distributable

[21:56] {MikeHelland} So, I click on the Single Image I just built

[21:56] {MikeHelland} And I can create an EXE with this, or even send it right to an FTP server

[21:56] {MikeHelland} I built one earlier, so lets run it

[21:57] {MikeHelland} Here's our give away,.*g*

[21:57] {MikeHelland} And you'll notice the standard looking Install

[21:57] {DougWhite} {g}

[21:58] {MikeHelland} Hmm, I wonder what happened to my pictures

[21:58] {MikeHelland} They were there the first time

[21:58] {MikeHelland} Anways, I'll keep going, since this is the second time I ran this, things are different

[21:58] {MikeHelland} But thats about it

[21:59] {MikeHelland} Plus, since it Windows Installer, I think I can rollback my system to the point before I installed if I need to

[21:59] {MikeHelland} Any questions?

[21:59] {MikeHelland} Hey, 10pm exactly.. I like that

[21:59] {CarlKarsten} Well done!

[21:59] {DougWhite} Outstanding presentation, Mike

[22:00] {DougWhite} you just taught an old dog some new tricks

[22:00] {MikeHelland} I would like to play with the VNC concept a little bit later

[22:00] {MikeHelland} My pleasure

[22:00] {MikeHelland} But anyone gets some questions, it is pretty easy to make these isntalls

[22:00] {ArielGimenez} I came late but your last words rocks Mike!!!

[22:00] {MikeHelland} Though, the user interface has some pitfalls

[22:00] {DenisChasse} Thanks Mike. Can't wait to get it with VFP7 :-)

[22:01] {DougWhite} I can't wait to get VFP7 {g}


Contributors Mike Helland, Carl Karsten, Cindy Winegarden
Category Wednesday Night Lectures Category Installers