Properties can be used to select functionality you want to install in MSI.
There are many applications which provide multiple functionalities and we want to choose among those functionalities which are to be installed. So if you are purely packaging an MSI from scratch you can provide deployer with options.
This can be done with the help of properties like INSTALLLEVEL, custom defined properties through custom actions etc
- With the help of INSTALLLEVEL
I got 4 features F1,F2,F3,F4,F5 out of which I want to install F1,F2 and F4. I have set INSTALLLEVEL for F1,F2,F3,F4 and F5 as 2,4,6,1 and 8 respectively.
Now through command line I can Pass Property INSTALLLEVEL=5 so that only F1,F2 and F4 will get installed
eg. msiexec /i "ABC.MSI" INSTALLLEVEL=5
- With the help of Custom Actions
Now here we got base for generalizations of MSI. There are some applications where we want to avoid some files or components or feature or registry, we can just conditionalize them. We can create Custom Public property.(It must be public as we need to change during installation, outside MSI.)
Provide an option in dialog boxes to change the property value.Here on checking value will change to 8.
Wise Package Studio provides an option to apply this condition to component or feature. (Here we provided condition as, if value of INSTALLFFEATURE property is 8.)
So on checking or removing check you can choose to deploy or not to deploy that particular component or feature from MSI.
This can be effectively used for customizations.