/build/static/layout/Breadcrumb_cap_w.png

Problem with self healing

Hi

I have a msi to which I need to make a .mst file which imports some registry entries into HKCU using self repair from an advertised shortcut. I´m pretty new to Install Shield and especially keypaths/self healing so please consider that.

The plan was to either take an existing shortcut from the original vendor msi and put the registry values in that component. That way I thought I was sure to trigger the self healing process. But this didn´t work since the shortcut isn´t advertised and when I changed it to be advertised it wanted a keyfile. And a registryentry isn´t a file. So I don´t know how to fix that.

I also tried creating an advertised shortcut myself and adding the registryvalues myself but the shortcut wouldn´t appear on the start menu at all.

So please guide me into the right direction. I just want to add some registry values (5 of them) and make them all work on all users of a computer via self healing.

I´m using Install Shield.

0 Comments   [ + ] Show comments

Answers (8)

Posted by: pjgeutjens 14 years ago
Red Belt
0
David,

try the following:

1 put all your user specific stuff in 1 component, make sure you link the component to a feature that will be installed.
2 add a regkey under HKCU to this component, for example HKCU\Software\<My APP>\UserSettingsComplete = 1, and make this the keypath for your usersettings-component
3 choose a shortcut you want to make advertised (or well, the exe it has to point to)
4 make the advertised shortcut to the component that includes your chosen exe

When triggering an advertised shortcut, Windows Installer will check ALL your component keypaths. Since the keypath for your UserSetting component will be missing, this will trigger the repair.

Hope this helps

PJ
Posted by: Agathorn 14 years ago
Senior Purple Belt
0
I did this:

I went to Setup Design and added a component under a feature that will be installed. In that component I added the registry values (went to Registry Data under the component and imported the reg values). I make one of the values key path for the component.

Then I went to "shortcuts". I created a new advertised shortcut and pointed to the component which contains the .exe file to start the program with. Saved the .mst file under a new name.

Then I installed the msi file using msiexec and with the transform file. I started the program as the same user who installed it and the registry values were there. Then I logged in a another local user but when I started the application from the start-menu no self healing took place and the registry values weren´t applied.

Any suggestions?
Posted by: mekaywe 14 years ago
Brown Belt
0
Did you import HKCU registries or HKLM registries ?
Did you make the Shortcut available for that particular Feature. HKCU registries should be in the same feature which contains the Shortcut.
Posted by: Agathorn 14 years ago
Senior Purple Belt
0
It is HKCU values I import. 4 values in one .reg file.

When I made the advertised shortcut I pointed to the component which contains the .exe file and that component is in the same feature as the "registrycomponent" which I created. Is there something else I have to do to make it work?
But I haven´t made anything other then that to: "make the shortcut avaiblable for that particular feature" (as you said). Maybe something I missed?

I´m guessing that the feature is installed since the .exe file which starts the installation, gets installed. If I go to add/remove programs I´m not able to see the feature when I click modify. It´s just a guide to the installation ... But when I check the registry it seems as if the feature is installed.
Posted by: anonymous_9363 14 years ago
Red Belt
0
The shortest route to success with this is to search John McFadyen's blog. There's also this web page on the subject and this.
Posted by: Agathorn 14 years ago
Senior Purple Belt
0
Thanks for the tip. I actually got it to work by importing the reg. settings in the component which contains the .exe file to start the program with. I tried it before as well but it worked this time. Don´t ask me why :)
Now I face another problem, to give permissions to "users" to write in the program directory. Works fine in all subdirs and files but not in the main directory aka [INSTALLDIR]. Oh well I´ll just use setacl or something :)

Thanks for the help
Posted by: anonymous_9363 14 years ago
Red Belt
0
Be careful with SetACL, if passing properties which clontain resolved paths: these paths will have a trailing backslash which SetACL will choke on. So, instead of passing INSTALLDIR, pass [ProgramFilesFolder]\{actual name of INSTALLDIR}
Posted by: Agathorn 14 years ago
Senior Purple Belt
0
Yeah I just distributed the package and I used the actual path of the program. Didn´t even think of using [INSTALLDIR], I guess I should have if I did things correctly. oh well, in this case it was a good thing I guess.
Thanks for the tip!
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ