2009-06-02 95 views
3

在某些WM Std 6.1上测试我的应用程序我发现它无法卸载。我收到此错误:Windows Mobile无法卸载

“[应用]并没有完全消除。你想从已安装的程序列表中删除它吗?“

检查我的setup.dll我可以告诉Uninstall_Init和Uninstall_Exit每次都被调用,但所有文件都保持不变(我们已经检查过)及其项不从安装的应用程序列表中消失(我是否选择它留与否)

+0

你的问题是什么? – 2009-06-02 16:21:35

回答

2

,实际上只有三为这个可能的原因:

  1. Uninstall_Init不回继续。
  2. Uninstall_Exit不会返回继续。
  3. 安装程序引擎失败。

如果您已验证1 & 2然后确定然后3将很难找出。

,我中遇到的一些问题:

  • 检查您的设置DLL的DLL依赖并尝试删除尽可能多的。我发现对MSXML的依赖可能会导致问题。
  • 删除您的INF文件中的任何注册表设置,将其移入您的设置DLL。我发现这会导致卸载在随机设备上随机失败,因为这一点。

我需要为现有客户做的事情是编写一个卸载应用程序,以便在卸载工作时手动删除我们的应用程序。如果您确实需要编写手动解除安装,您需要执行以下操作: *删除所有注册表项 *删除所有文件 *删除注册表项HKLM \ Security \ AppInstall {应用程序名称} *在WM6.1中,您需要从EDB数据库“SwMgmtMetadataStore”中删除SWT_INSTALL_NAME_TAG属性等于您的{app name}的数据库记录。

+0

我认为这将是3在我的情况下,1和2工作正常。感谢您的建议,我会像说的那样做。 – michael 2009-06-04 11:08:42

1

另一件值得研究的事情是cab安装/卸载过程创建的安装日志。

您可以在\ Application Data \ Volatile \目录下找到它(通常称为setup.log)。

将此文件复制到您的台式电脑并在记事本中打开它可能会提供更多线索(例如卸载时使用的文件),以了解卸载未成功的原因。

0

我有几个CAB文件在WM 6.0上完美工作,但在WM 6.1中停止工作。

原来是因为AppName或制造商中有空格。删除空格固定了CAB文件,现在它们在WM 6.1中成功卸载!