PDA

View Full Version : Porting Application over to Vista



JPRaven
10-27-2009, 08:28 AM
I am trying to adapt our existing app to work correctly with Vista.
Our app uses an Access database (*.mdb) which up until now has been installed in the [INSTALLDIR] along with the executable and other program files. The db file doesn not get overwritten when the Installshield wizard is upgrading from a previous version of the app.

As Vista doesn't allow programs run by non-admin users to write to Program Files or it's sub-folders, this db file needs to be installed in another location on Vista, preferably under ProgramData as it is not user-specific. Can anyone confirm which of the pre-defined folder names in Installshield I should use to place the db somewhere under "ProgramData" on Vista?

More importantly, when running the IS wizard to upgrade from an earlier version of our app, rather than installing a blank db file, it needs to move the existing DB file from its current location in the [INSTALLDIR] to the new location under ProgramData. Can anyone suggest the best way of doing this? I was considering running a batch file or windows script in Custom Actions, but there's surely a better way...

Any help or advice would be greatly appreciated.

Jean-Paul Raven

Ajay Ladsaria
11-12-2009, 01:26 PM
You should be able to use CommonAppDataFolder location to get files to install to C:\ProgramData folder in Vista and newer.

You may want to look into using the MoveFile table to copy an existing version of your applications Access database files to the new location. Otherwise you would probably need to create some kind of custom action to handle the requirement.

MoveFile Table
http://msdn.microsoft.com/en-us/library/aa370055(VS.85).aspx

Edit - I just noticed that you are using InstallShield Express edition. In this case the MoveFile Table option is not available because Express does not have the capability of editing MSI tables directly. This means you will need to use a custom action to accomplish this objective.