This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallAnywhere
- :
- InstallAnywhere Forum
- :
- Single Uninstaller for multiple dynamic merge modules
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Dec 20, 2010
03:10 PM
Single Uninstaller for multiple dynamic merge modules
I’m looking for some guidance on how to get one uninstaller working for multiple dynamic merge modules. I’m using IA2010 SP1 with hotfix A (build 3792).
I’ve been able to create the single Uninstaller, however it only partially uninstalls. I suspect I’m missing something basic?
Sorry for the long post, but hopefully I’ve covered everything pertinent.
I have a dozen or so existing IA installers that I’ve re-built as merge modules and dynamically imported as components in a “suite” Installer. The components are associated to features and the features to Install Sets. With maintenance mode enabled or not, I can install successfully and create a single uninstaller. The problem is that the uninstaller seems to only partially uninstall; I suspect only the pre-uninstall logic of the last installed merge module is executed, followed by the uninstall step of the “suite”. For this post, I’ve reproduced the issue with a very scaled down Windows installer based on the “Office Suite” example from the User Manual; if anyone can suggest a solution?
The IA user guide, indicated that there were 4 guidelines to achieving a single installer:
(1) Every product must have the same Product ID.
(2) Each separate product should then be “demoted” to a feature of the master product.
(3) The uninstallers for these separate projects must also share the same uninstaller name and uninstaller location.
(4) Every product that installs features will register its features with the uninstaller.
I believe I’ve followed guidelines 1 through 3, although I’m a little unclear on the 4th on how to “register a feature with an uninstaller”. Looking at the product registry file (.com.zerog.registry.xml) the product/feature parenting tags seem to be created with out me adding any specific IA actions. The registry however does look incorrect or at least different than what I would expect, in that the last merge module in the installer is listed as the “product”. (registry file attached)
Example Installer:
• “OfficeSuiteExample” dynamically importing “SpreadsheetApplication” and “WordProcessorApplication”
• All 3 installers definitions have the same product id.
• All have the same default install dir: “$DESKTOP$\IA_Example\InstallDir”
• Each Installs a text file to test bare minimal install functionality.
• All have the Uninstaller name and location: “$USER_INSTALL_DIR$\Uninstall\ChangeInstallation”
• Installation appears successful
• Uninstall appears to executes (1) “WordProcessor Application” pre-uninstall actions and (2) uninstall OfficeSuite file. What is missing from the execution are:
o Spreadsheet and Office Suite Pre-Uninstall not executed
o Spreadsheet and WordProcessor files not Uninstall
Install config looks like this:
In Screen capture on the install, I’ve kept the basic template of each installer to be able to see the progression of the Install steps.
Directory after Installation contains the expected 3 text files and single uninstaller.
In screen capture of Uninstall, I’ve included the feature list variable which looks reasonable. The Window title, panel title and info text all indictate the "WordProcessor Application".
Directory after Uninstall, leaves these files behind.
SpreadsheetExampleFile.txt
WordProcessorExampleFile.txt
Uninstall logs only created for WordProcessor, and nothing particularly note worthy in log.
I can make the iap_xml files available if anyone wants.
Thanks in advance for any help you may be able to provide.
I’ve been able to create the single Uninstaller, however it only partially uninstalls. I suspect I’m missing something basic?
Sorry for the long post, but hopefully I’ve covered everything pertinent.
I have a dozen or so existing IA installers that I’ve re-built as merge modules and dynamically imported as components in a “suite” Installer. The components are associated to features and the features to Install Sets. With maintenance mode enabled or not, I can install successfully and create a single uninstaller. The problem is that the uninstaller seems to only partially uninstall; I suspect only the pre-uninstall logic of the last installed merge module is executed, followed by the uninstall step of the “suite”. For this post, I’ve reproduced the issue with a very scaled down Windows installer based on the “Office Suite” example from the User Manual; if anyone can suggest a solution?
The IA user guide, indicated that there were 4 guidelines to achieving a single installer:
(1) Every product must have the same Product ID.
(2) Each separate product should then be “demoted” to a feature of the master product.
(3) The uninstallers for these separate projects must also share the same uninstaller name and uninstaller location.
(4) Every product that installs features will register its features with the uninstaller.
I believe I’ve followed guidelines 1 through 3, although I’m a little unclear on the 4th on how to “register a feature with an uninstaller”. Looking at the product registry file (.com.zerog.registry.xml) the product/feature parenting tags seem to be created with out me adding any specific IA actions. The registry however does look incorrect or at least different than what I would expect, in that the last merge module in the installer is listed as the “product”. (registry file attached)
Example Installer:
• “OfficeSuiteExample” dynamically importing “SpreadsheetApplication” and “WordProcessorApplication”
• All 3 installers definitions have the same product id.
• All have the same default install dir: “$DESKTOP$\IA_Example\InstallDir”
• Each Installs a text file to test bare minimal install functionality.
• All have the Uninstaller name and location: “$USER_INSTALL_DIR$\Uninstall\ChangeInstallation”
• Installation appears successful
• Uninstall appears to executes (1) “WordProcessor Application” pre-uninstall actions and (2) uninstall OfficeSuite file. What is missing from the execution are:
o Spreadsheet and Office Suite Pre-Uninstall not executed
o Spreadsheet and WordProcessor files not Uninstall
Install config looks like this:
In Screen capture on the install, I’ve kept the basic template of each installer to be able to see the progression of the Install steps.
Directory after Installation contains the expected 3 text files and single uninstaller.
In screen capture of Uninstall, I’ve included the feature list variable which looks reasonable. The Window title, panel title and info text all indictate the "WordProcessor Application".
Directory after Uninstall, leaves these files behind.
SpreadsheetExampleFile.txt
WordProcessorExampleFile.txt
Uninstall logs only created for WordProcessor, and nothing particularly note worthy in log.
I can make the iap_xml files available if anyone wants.
Thanks in advance for any help you may be able to provide.
(4) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Dec 13, 2012
03:29 AM
I was also not able to get this working and resorted to using the Execute Uninstaller command to invoke the uninstaller of each merge modules.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Dec 13, 2012
11:53 PM
Hi,
You may upgrade to a newer version of IA. It has an option to select whether or not the merge modules should be uninstalled along with the parent. This will automatically take care of multiple merge module uninstallations when the parent is uninstalled.
Thanks.
You may upgrade to a newer version of IA. It has an option to select whether or not the merge modules should be uninstalled along with the parent. This will automatically take care of multiple merge module uninstallations when the parent is uninstalled.
Thanks.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
Dec 18, 2012
01:30 AM
Ok thanks for the info.