2

I created an installer project for Win XP using VS 2013.

While trying to install it, I got an error: "DIRCA_CheckFX. Return value 3."

I visited this article in StackOverFlow: DIRCA_CHECKFX Return Value 3 - VS 2013 Deployment Project. I did the Suggestion that I read there - to replace the "dpca.dll" - and it works great ! But only at machines that I didn't install the bad msi before.

While trying to install the new version of msi on a machine that has the bad version, I got an error that this program is already installed. But while trying to uninstall the program - I got the error of : "DIRCA_CheckFX. Return value 3."

My question Is - How to Unistall the bad Version Of my installer and prevent this error?

thanks.

Community
  • 1
  • 1
Bat
  • 121
  • 8

1 Answers1

0

The root cause of this is the perhaps silly choice to do a check for the .NET Runtime when uninstalling the product. I suppose it's possible that someone uninstalled the .NET FW and that you are running uninstall custom actions that require it, and maybe that happened to you, but it seems unnecessary to me IMO.

If I were to have this problem, there are two solutions:

  1. If you have that exact same MSI file, same version, ProductCode, identical in every way, then open it with Orca and go to the InstallExecuteSequence table. Go to the DIRCA_CheckFX call and set a condition of False, save the MSI file. Then install that MSI file with a command line msiexec /i [path to new MSI] REINSTALL=ALL REINSTALLMODE=vomus and this will do an update in place of the installed product, including the call to DIRCA_CheckFX that is now suppressed. Uninstall should work.

  2. In the absence of the proper MSI file, troll through the Windows\installer folder looking at the cached MSI files. Hovering the mouse over each should get you to your cached MSI for the broken product. Again, edit with Orca as above to suppress the call on DIRCA_CheckFX.

PhilDW
  • 20,260
  • 1
  • 18
  • 28