I'm currently evaluating InstallShield AdminStudio and trying to figure out how to use the self-repair feature for MSI installs. I've searched this site for any information but haven't found anything that helped me understand this.
Specifically, I have keys within HKCU and planning on using MSI to package applications that would be installed on XP workstations that would be used by multiple users. By using the self-repair it would ensure that the proper information is in the HKCU before starting the application. Or is there a better method to do this?
What I have learned so far is to make sure that the shortcut is setup as advertised and that the ALLUSER in the property table is set to 1.
Add an exe to the project make an advertised shortcut to it build and run the installation click on the shortcut, and the program should start delete the exe, try the shortcut again, you will see Windows Installer do it's selfrepair and the program should start
The other thing you asked for was user registry (files in the userprofile are also possible to install this way too) You are correct that you need to set the ALLUSER property equal to 1 and have an advertised shortcut. The component with the HKCU entries must be in the same feature as the component with the exe.
Thanks, I deleted the EXE for example and the self repair works and the the registry information has been tied to the EXE as you explained.
However, I need to have a way of having the MSI launcher to also check to see if a specific registry key exists in the HKCU. This is needed when a second user on a XP workstation signs on and attempts to launch an application that was installed by the first user.
I looked at the key file or path but you can only have one or the other and not both. (Was thinking if I could use one of the keys in the HKCU and it wasn't found then it would kick off a self-repair).
You can create another component which contains your HKCU data and set one of the registry entries as the key path. Make sure that new component is associated with the same feature as the shortcut component is.
When the shortcut is activated, the installer verifies that all the components in the feature are installed before launching the file.
Hmmm, I think I did that. The example program I'm using is Thumbs Plus. If I click on the registry section, and select the thumbs.exe, I have all of the requierd registry information tied to that executable.
If I delete the executable, it works. If I delete the registry key in HKCU, it runs without doing a repair. I must be missing something else...
Have you looked at the Setup Design View at all? That shows you the feature -> component relationships. It also shows all of the data (registry entires, files, shortcuts) that are associated with a particular component.
Is there another way to get the HKCU information to repair other than using the advertised shortcut? Launching the app exe from explorer doesn't seem to do it.