This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

How to uninstall MSI

I have a small package that deploys an MSI.

The MSI creates an executable and a service definition. I need to update my deployment package to a new MSI package. The problem is that the new package can't overwrite the existing running executable. My best guess is the existing package needs to be uninstalled before the new package can be pushed out.

I have the "Package can be uninstalled" box ticked under the advanced publishing.  The package uninstalls cleanly from the local workstation from add / remove programs as well as from a command line with msiexec /x /qb-.

When I attempt an uninstall via 'approve for uninstall' I get the following in the windowsupdate.log.

WARNING: Install failed, error = 0x80240017 / 0x00000000.

What am I missing to get this package to uninstall correctly?

  • To uninstall a package that supports uninstallation via WSUS, you will need to change the approval for that package in the WSUS console to "Approved for Removal", and then you will either need to allow the WUAgent to naturally detect that change in approval and schedule the removal via the regular policy-based daily installation event, or you will need to run the Update Management task in the Extension Pack and explicitly choose the "Removal" action to be performed on that update package.

    The key question here may depend on whether the package does, in fact, support unattended uninstallation. Also, whether the uninstallation requires custom command line parameters. If custom parameters are required, you may need to build a separate "Uninstallation" package that specificies that behavior.

    In this instance, the 0x80240017 error code is telling us that the action is NotApplicable on the target machine. If the target machine is assigned to a replica server and the replica server has not yet synchronized the change in approval from the upstream server, this could occur. It could also occur if the product is not actually installed on the target machine.

    0x80240017

    WU_E_NOT_APPLICABLE

    Operation was not performed because there are no applicable updates.

    Alternatively, on your NEW package, you can use PackageBoot(tm) to execute the MSI Uninstallation as a pre-installation step of the new update package with explicit and custom defined command-line parameters. Please refer to the Local Publishing Administration Guide for details on the use of PackageBoot(tm). Specifically take a look at the sample MSI <program> element in the <preexecution><programs> element collection.

  • Normal0falsefalsefalseEN-USX-NONEX-NONE
      /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Calibri","sans-serif"; mso-bidi-font-family:"Times New Roman";} 

    The original package in question does indeed support a silent uninstall, at least with 'msiexec /qn /x MyPackage.msi'. That is what seems so odd to me. The package is installed and obviously detected if the uninstall is being queued for action.

    We are not using a replica / downstream topology.

    The PackageBoot uninstaller looks appealing. Many thanks.

  • When I add the PackageBoot utility to my package I am receiving "<PackageName> failed. Authough content was downloaded the image does not appear to be valid." Considering that the package does download and work when just using the MSI file I'm not sure how to resolve this.