Marc Bernier
Marc Bernier

Reputation: 2996

Windows 10 MSI Uninstall Fails with 1721

I have an Excel Add-in that uses a Wix (3.10) install script. The installation works fine. However, if the user tries to remove the add-in through System | Apps & Features, it fails with "There is a problem with this Windows Installer package. A program required for this install to complete could not be run." Looking at the uninstall log, I see this:

Error 1721. There is a problem with this Windows Installer package. A program required for this install to complete could not be run. Contact your support personnel or package vendor. Action: _BDF865EC_34B3_4B29_986C_98D6EC1A9807, location: C:\Windows\Installer\MSI2FE4.tmp, command: /uninstall="C:\Users\Windows10\AppData\Local\myCompany\myProduct\myAddin.dll" /privileges=user 

The action that it is balking at is this:

<CustomAction Id="_BDF865EC_34B3_4B29_986C_98D6EC1A9807" BinaryKey="adxregistrator_exe" Execute="deferred" ExeCommand='/uninstall="[TARGETDIR]$(var.myProject.TargetFileName)" /privileges=user' Impersonate="yes" />

However, if I re-run my installer and select 'Remove', it uninstalls fine. Also, If I run the uninstall from a command line (using the msiexec command found in the registry entry for this product), it also uninstalls fine.

Also:

It seems to me that there is a problem with the new Windows Apps & Features app, but I have yet to find anything on the Microsoft forums.

Update:

A Wix user posted this: DTF Bug with new Windows 10 Apps and Features. Also, we have tried a variety of commands (thinking it was a UAC issue), none of them work, even 'built-in' Windows commands fail.

Upvotes: 0

Views: 2107

Answers (1)

HonzaF
HonzaF

Reputation: 1

I have run into the same issue and finally came with this solution: Win 10 Apps & Features uninstaller checks for the WindowsInstaller registry value and behaves correctly when this value is not present

1) Define the custom action

<CustomAction Id="DeleteWindowsInstallerValue" Return="ignore" Directory="TARGETDIR" Execute="deferred" Impersonate="no"
ExeCommand= "reg.exe DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\[ProductCode] /v WindowsInstaller /f" />

2) schedule the action in the InstallExecuteSequence

<Custom Action="DeleteWindowsInstallerValue" Before="InstallFinalize"/>

Honza

Upvotes: 0

Related Questions