Re-installing conditionalised features
I have packaged the Siebel e-Applications client for a customer who uses all 10 supported languages at different sites. Their requirement was that the MSI would read a configuration INI file which specificied which languages should be installed for that site.
To achieve this I have put the different language files into their own features and then set conditions on the features' componenets based on a PUBLIC property (which is read in from the INI file). e.g. if ITA=YES the Italian files will be installed.
This logic works fine for the initial install, but the customer has now come back and said they want the ability to change the installed languages without a complete uninstall / re-install.
I know that you can only 'repair' features that are already installed, but for some reason even when I try to 'modify' the installed features by changing the INI file and then choosing to install the correct features from the the modify option in add/remove programs it still will only install the features that were selected for the initial install.
Any ideas / help would be much appreciated.
Thanks
To achieve this I have put the different language files into their own features and then set conditions on the features' componenets based on a PUBLIC property (which is read in from the INI file). e.g. if ITA=YES the Italian files will be installed.
This logic works fine for the initial install, but the customer has now come back and said they want the ability to change the installed languages without a complete uninstall / re-install.
I know that you can only 'repair' features that are already installed, but for some reason even when I try to 'modify' the installed features by changing the INI file and then choosing to install the correct features from the the modify option in add/remove programs it still will only install the features that were selected for the initial install.
Any ideas / help would be much appreciated.
Thanks
0 Comments
[ + ] Show comments
Answers (1)
Please log in to answer
Posted by:
WiseUser
18 years ago
Since you have separated the different language components into different features, it may have been unneccessary to condition the components.
It should simply be a case of using the "ADDLOCAL" and "REMOVE" properties to add/remove the appropriate features.
Let's say you have 4 top-level features called IT,FR,EN, and DE. To install only the IT feature, you can use the following command:
Msiexec /qb /i Your.msi ADDLOCAL=IT
To remove any previously installed feature, and install the EN feature you could use this command:
Msiexec /qb /i {ProductCode} ADDLOCAL=EN REMOVE=IT,FR,DE
Btw, unless you set the "msidbComponentAttributesTransitive" bit on your components, changing the condition during a reinstall will not alter their installed state.
It should simply be a case of using the "ADDLOCAL" and "REMOVE" properties to add/remove the appropriate features.
Let's say you have 4 top-level features called IT,FR,EN, and DE. To install only the IT feature, you can use the following command:
To remove any previously installed feature, and install the EN feature you could use this command:
Btw, unless you set the "msidbComponentAttributesTransitive" bit on your components, changing the condition during a reinstall will not alter their installed state.
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.