简体   繁体   中英

MSI Uninstall issue: Error 1001 -> The saved State dictionary contains inconsistent data and might have been corrupted

I need to create a few Windows Services and obviously I would like to package them in a nice installer.

Since I was unfamiliar with Service creation/installation I basically used code from the following example:

Advanced Service Installation

I did not change ProjectInstaller or InstallActions and basically just plugged my own services (File monitoring/conversion).

Building and compiling the code works A-OK:

  1. The Installer works, the services are installed (but NOT started as might be expected)
  2. My Services themselves all work
  3. The Uninstall FAILS, stating the error from the title

What is very strange:

If, after the failed uninstall, I run "Repair" and subsequently manually remove *.Installstate from the installation folder, the uninstaller magically works.

This is driving me nuts.

I guess I could just document this quirk for the potential users of my service but I don't like not knowing what is really going on.

Debugging this sort of thing is really hard (wouldn't even know how) and documentation is very scarce (non-existing even).

Anybody with some tips?

I solved this problem by doing this:

  • Go to the folder installation
  • Edit the file xxxxxxx.InstallState with notepad or an XML editor (where xxxxx is the name of your service)
  • Go to ArrayOfKeyValueOfanyTypeanyType node and then to Keys node
  • Delete anyType child
  • Go to the Values node and delete all anyType child
  • Save the file and try to uninstall

This works for me. regards

I got the same problem and I've managed to fix it by adding proper conditions to Custom Actions. In my case I've added Not Installed to my Windows Service Installer at the Install and Uninstall phase. There were no errors after that. Hope this will help! Find more information on this issues here .

I Know this is an old post but I fixed my problem by calling the Installer class base prior to performing my custom actions, I accidentally added my code by the base calls first.

Go to control panel and first repair your setup. After the successful repair you will be able to uninstall.

I had a similar issue where a Windows Installer Package (.msi) was not uninstalling as expected. The workaround for me was to use the command line to uninstall using InstallUtil.exe. Then, reinstall the service using InstallUtil.exe. After, I was finally able to use an old msi to uninstall. After I uninstalled using the old MSI, I was able to use a NEW msi to install and everything worked as desired.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM