在卸载Winform应用程序时完全删除所有文件夹和文件?

时间:2012-04-27 00:14:45

标签: c# winforms windows-installer uninstall

卸载Winform应用程序后会保留各种文件和文件夹 - 包括内容文件(图片,图标等)和应用程序创建的日志文件夹。对于内容文件:在自定义安装程序项目中,我将“永久”属性设置为false。对于logs文件夹:我认为这将被其他所有内容删除。

我是否缺少MSI设置属性,或者我是否需要确定应用程序的根路径并删除被覆盖的Uninstall方法上的所有内容?

2 个答案:

答案 0 :(得分:2)

不,没有。 MSI安装程序不会卸载它未安装的任何内容,这意味着将保留用户数据,日志文件等。

这是设计的 - 如果用户错误地卸载了您的应用并清除了所有财务数据或其他内容,您能想象出这种责任吗?或者,如果他们错误地将其他内容保存到您应用的数据文件夹中,并且您的卸载程序将其删除了?

答案 1 :(得分:0)

请参阅安装程序,保留有关其安装的所有文件的信息,并在调用卸载时,此信息告知安装程序要删除的文件或文件夹。安装后,如果应用程序或用户创建任何文件夹或文件,即使在卸载后,这些项目仍保留在那里。

但是有一个解决方案。您可以在OnAfterUninstall此处

下编写自己的自定义操作
protected override void OnAfterUninstall(IDictionary savedState)
{
    base.OnAfterUninstall(savedState);
    // Write your code
}