为什么在安装期间不调用Uninstall方法?

时间:2011-03-30 12:02:09

标签: c# visual-studio-2010 deployment windows-installer

我知道有othersimilar个问题,但要么没有得到正确答案,要么答案不能解决我的问题。

我的程序有一个主框架以及框架的各种插件。插件通过XML文件进行管理,该文件包含框架动态加载插件所需的信息。

我有一个通用的Installer类,用于在安装插件时处理自定义操作。

在安装过程中,它需要加载XML文件并在其中添加一个新节点,列出加载插件所需的信息。

在卸载过程中,只需要从XML文件中删除相同的节点。

安装工作正常。当我尝试卸载插件时,Installer的卸载方法甚至都没有被调用。

如果需要更多信息,请不要犹豫。

4 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,即卸载方法没有被执行。 卸载目标位置中的安装程序和所有文件后,我使用安装程序名称和主输出文件名删除了注册表中的所有引用。 (视觉工作室使用的那些关键值除外) 之后,卸载方法再次执行。 它看起来像以前不成功的安装,在注册表中没有很好地清理。

答案 1 :(得分:2)

尝试删除卸载自定义操作保存项目,然后重新添加。此外,如果要调试安装程序包,可以添加以下内容:

Debugger.Launch();

在覆盖方法的初始化而不是使用消息框。

答案 2 :(得分:0)

您确认自定义操作配置正确吗?我建议你在整个地方放一些MessageBox,这样你就可以跟踪发生了什么。

答案 3 :(得分:0)

您是否尝试过提及here

的解决方案

我相信有时Visual Studio会进行就地升级,并且实际上并不会卸载旧版本。