卸载Windows应用程序后删除已安装的目录

时间:2017-03-30 09:17:15

标签: c# winforms visual-studio windows-installer installshield

我使用安装盾为我的Windows应用程序创建了安装文件(msi)。问题是当我从控制面板卸载应用程序时,除了2个文件剩余文件已从安装目录中删除。但我希望删除整个安装目录。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:3)

  

这些文件是由application.It只是bin文件创建的   的WinForms。

Windows安装程序仅在卸载文件时才会自动删除文件,如果之前已安装 。它不会自动删除其他文件,因为它们可能是用户文件。

解决方案是明确告诉Windows Installer在卸载时删除剩余的文件。我无法使用InstallShield告诉您如何使用InstallShield,但我相当确定它有一个功能。例如,WiX工具集具有RemoveFile元素,该元素将条目写入Window Installer的基础RemoveFile表。

显式删除目录不是必需的,因为如果目录为空(在删除所有文件之后),Windows安装程序将执行此操作。如果您仍然看到剩下的空目录(您的应用程序可能已创建),则应该有InstallShield的功能,您可以在其中定义要在卸载时删除的目录。例如,WiX工具集具有RemoveFolder元素,该条目将条目写入Window Installer的基础RemoveFile表。

答案 1 :(得分:1)

两件事:

  1. 在Visual Studio安装项目(不支持RemoveFile功能)中,您需要运行卸载自定义操作以删除这些文件。这可能比您预期的要棘手,因为您需要记住实际的安装文件夹--Windows不会为您执行此操作 - 然后删除* .bin文件。

  2. 如果这些是运行应用程序而遗留的临时文件,而您实际上并不需要它们,那么请在标准Temp文件夹中创建它们,因为:

  3. a)程序文件文件夹并非真正用于数据存储,将它们放在Temp中可以解决您的问题。

    b)Temp文件夹文件通常由用户清理磁盘,自动清理等定期删除。换句话说,如果你在Temp中留下小文件,没有人真正关心。

答案 2 :(得分:0)

请检查该组件是否共享,是否无缘无故共享。

请将共享设置为否。

仍然没有删除,创建一个自定义操作来删除文件。

有关详细信息,请参阅以下

https://msdn.microsoft.com/en-us/library/windows/desktop/aa371199(v=vs.85).aspx