I have a VB6 Application and have created a deploy for it. The deployment works fine if the person logged into the PC has local admin rights which you would expect but if I then log in as another user with admin rights the system does not work. What seems to be happening is I use bound grids and the grids are showing up as blank when there should be data.
How can I make my install so it installs to all users?
VSI 1.1 is too old to know about per-user vs. per-machine installs. As a result it always creates a per-user install, since this is the default (ALLUSERS = null).
You can address this by running the installation manually with parameters as in:
msiexec /i mypackage.msi allusers=1
You can also override the default in your MSI package by opening it using the Orca.exe tool and adding a row to the Property table. Create a row with a Property column value of ALLUSERS and Value column value of 1.
Beyond this you may have the issue of where your Installer package puts the application's data files and/or where your application looks for them. Any shared data should go into a folder located beneath CommonAppDataFolder. The recommended practice is to create a folder structure like:
{CommonAppDataFolder}\<company>\<application>
Your per-machine data files go into this application folder.
However... folders created here have complex security settings. Users can create files here, all users can read them, but only the owner can modify, delete, etc. these files. If you really want everyone to be able to read, write, delete, these files your Installer package should set the rights needed after creating the folder or set the rights on each file as it places them here.
If you do not want to add this information to your MSI database by hand using Orca each time you build a new package, you can also script the changes. VSI 1.1 does not have the ability to specify post-build scripts so you'll need to run your script manually after each build.
I have attached a sample script to do this. It requires small modifications to Const values to locate and identify your MSI package and your application within the package. See the comments. It assumes you specify a two-level directory structure under CommonAppDataFolder as described above.
Last edited by dilettante; Sep 24th, 2008 at 10:22 AM.