How do I make the properties in the package keep their values during Maintenance or Upgrade?
Most of the installation packages use custom properties for retrieving information from the user. Since the values of these properties are specific to the install process which sets them, the values set in one process cannot be used in another process (for example the properties set in the first installation don't have the same value during a repair). This can be solved by writing the values of the properties into the registry.
Let's suppose the installation package requires a Username and a Password every time it is launched in order to determine what it must do. For this purpose you can use two public properties USER and PASSWORD defined from the Properties Page - Installer Project. All you need to do is enable their "Set persistent property" option from Edit Property Dialog which will automatically add each properties's values to the registry.
This way the Username and Password set during the first installation can be used during Maintenance or Upgrade.