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.
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)
Please log in to answer
Posted by:
pjgeutjens
14 years ago
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
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
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?
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
Posted by:
Agathorn
14 years ago
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.
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
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
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
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
Posted by:
Agathorn
14 years ago
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.