Domanda

I've successfully got my proof of concept MSI installer creating an xml file, and updating the elements as I wish on a fresh install. I have 6 features, if the feature is selected to be installed I want a node created for that feature and an attribute set based on a property.

If I modify the install and remove a feature previously installed, I want the xml node created for it to persist and I wish to set the attribute I set on install to be updated based on the same property (which now has a different value).

Is it possible to leverage InstallShield's existing functionality to do this? It seems I could, and avoid writing a custom action to update my xml when removing a feature. There doesn't seem to be much documentation on isxmlcfg.dll and the custom actions in it.

the CA ISXmlUnInstall is running when I remove a feature - but it appears all that action does is remove the node or leave it...

È stato utile?

Soluzione

The problem you are probably encountering is the fact that although you used the property in something ( say registery, ini or xml ) windows installer doesn't natively persist properties in it's database. You have to do this your self. So if you want to do a repair, change, upgrade or whatever and you want to have that same property data, not only do you have to save it to something ( say xml ) but you also have to have a corrosponding AppSearch ( XmlSearch ) that can pull it back into the property so it has a value to be shown during the UI and or writing back out to XML later.

Also consider supporting a pattern where it get's read into a temp property and assigned to the real property only if the real property doesn't already have a value. That way someone could be doing a silent install ( upgrade ) and pass in the property as an override to what was previously configured. ( No clobbering by the search )

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top