Issue #11868 has been updated by Josh Cooper.
Lance also had issues uninstalling when using a multi-instance MSI: Lance: The Windows (MSI) package manager should allow for specification of uninstall options. I raise this to support a specific use case we have regarding multi-instance MSIs. A multi-instance MSI can be installed multiple times on a single machine, each time specifying a different transform via the command line. For example, we'll have a web application packaged as a single MSI that targets multiple countries. The transform specifies what country is being installed. The same transform, as we've implemented the MSIs, must be specified during uninstall to ensure proper operation. For our use case, reusing the install_options in the custom provider was sufficient. Josh: If we queried the registry for the UninstallString and passed that to msiexec, then would this still be an issue? Or are there cases, where you would want to specify additional options beyond what the Windows Installer writes to the UninstallString? Said another way, if you specify an MST during install, then the Windows Installer writes the '/t package.mst' option into the UninstallString, right? Lance: Yeah, I would think the same thing. Here's what I can tell you - executing the UninstallString does not uninstall the product, at least not in my case. Neither does calling the Uninstall method on the respective WMI object. However, selecting Uninstall via Programs and Features works like a charm and uninstalls only the specific instance, as desired. Confused? Yeah, me too. I really don't understand the unnecessary complexity or what's going on behind the scenes, but there it is. Admittedly, the use cases I'm citing is on the more complex side given the multi-instance nature of the installs we're doing. I doubt the bulk of your customers will encounter them, but they should be easy to handle via configuration, or a trivial extension, of an existing provider, IMHO. One last refinement - I mentioned that reusing the install_options would work. I take that back. The MSINEWINSTANCE property must be present during install but absent during uninstall. ---------------------------------------- Bug #11868: msi package provider can only manage packages it installed https://projects.puppetlabs.com/issues/11868#change-56256 Author: Josh Cooper Status: Accepted Priority: Normal Assignee: Josh Cooper Category: windows Target version: Affected Puppet version: 2.7.6 Keywords: Branch: The msi package provider keeps track of packages it installed in a yaml file. As a result, it doesn't know about packages it didn't install. The msi package provider should query the registry <http://msdn.microsoft.com/en-us/library/aa372105(VS.85).aspx>, or access that information through WMI's Win32_Product <http://msdn.microsoft.com/en-us/library/windows/desktop/aa394378(v=vs.85).aspx> This way it will accurately report on the state of the system. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
