繁体   English   中英

MSI 卸载问题:错误 1001 -> 保存的 State 字典包含不一致的数据并且可能已损坏

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

我需要创建一些 Windows 服务,显然我想在一个不错的安装程序中使用 package 它们。

由于我不熟悉服务创建/安装,我基本上使用了以下示例中的代码:

高级服务安装

我没有更改 ProjectInstaller 或 InstallActions,基本上只是插入了我自己的服务(文件监控/转换)。

构建和编译代码工作正常:

  1. 安装程序工作,服务已安装(但未按预期启动)
  2. 我的服务本身都工作
  3. 卸载失败,说明标题中的错误

很奇怪的是:

如果在卸载失败后,我运行“修复”并随后从安装文件夹中手动删除 *.Installstate,卸载程序就会神奇地工作。

这让我发疯了。

我想我可以为我的服务的潜在用户记录这个怪癖,但我不喜欢不知道到底发生了什么。

调试这类事情真的很难(甚至不知道如何),而且文档非常稀缺(甚至不存在)。

任何人有一些提示?

我通过这样做解决了这个问题:

  • Go到文件夹安装
  • 使用记事本或 XML 编辑器编辑文件 xxxxxxx.InstallState(其中 xxxxx 是您的服务的名称)
  • Go 到ArrayOfKeyValueOfanyTypeanyType节点,然后到Keys节点
  • 删除anyType子项
  • Go 到 Values 节点并删除所有anyType子节点
  • 保存文件并尝试卸载

这对我有用。 问候

我遇到了同样的问题,我设法通过向自定义操作添加适当的条件来解决它。 在我的情况下,我在安装和卸载阶段将未安装添加到我的 Windows 服务安装程序中。 之后没有错误。 希望这会有所帮助! 此处查找有关此问题的更多信息。

我知道这是一篇旧帖子,但我在执行自定义操作之前通过调用安装程序 class 基础解决了我的问题,我不小心首先通过基础调用添加了我的代码。

Go 到控制面板并首先修复您的设置。 修复成功后就可以卸载了。

我遇到了类似的问题,Windows 安装程序 Package (.msi) 没有按预期卸载。 我的解决方法是使用命令行使用 InstallUtil.exe 进行卸载。 然后,使用 InstallUtil.exe 重新安装该服务。 之后,我终于能够使用旧的 msi 进行卸载。 使用旧的 MSI 卸载后,我可以使用新的 msi 进行安装,一切都按预期工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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