卸载clickonce应用程序后删除多余的文件

时间:2011-10-19 22:47:52

标签: c#-4.0 clickonce uninstall

我有一个使用clickonce生成setup.exe的项目。在运行期间,我的程序在用户文件夹中创建一些额外的文件,如“日志”和“附件”。但是,当我从ARP卸载clickonce应用程序时,不会删除这些文件夹。这些剩余的文件正在干扰下一次安装。

我知道点击一次不支持添加自定义操作来安装或卸载。我想知道是否有一种方法可以在执行卸载后以编程方式删除这些额外的文件?

我尝试过的一种方法是创建一个清理脚本,并将其作为bootstrapper包添加到click once项目的先决条件中。这种方式的工作方式是每次安装新产品之前,之前的脏数据都已被删除。但是,这搞砸了升级案例。

有关如何删除clickonce卸载留下的额外文件的任何想法?

谢谢

JS

2 个答案:

答案 0 :(得分:1)

除卸载ClickOnce应用程序之外,卸载ClickOnce应用程序时无法执行任何操作。

您是否考虑过将这些文件放在ApplicationDeployment.CurrentDeployment.DataDirectory中?然后,当应用程序是unisntalled时,它们将被删除。

如果文件是项目的一部分,您可以在“应用程序文件”对话框中将类型设置为“数据”,并在部署时自动将它们放在数据目录中。

答案 1 :(得分:0)

此解决方案可用于多次重新安装(干净),但是在上一次卸载或直到下一次安装之前,它不会删除数据。

在卸载时,没有自定义操作的地方可以删除超出clickonce范围的文件。

将文件保留在ApplicationDeployment.CurrentDeployment.DataDirectory中。

在启动时,查看文件是否存在于网络部署的条件下,首次运行(在upgarde上也会重置)。成功的情况,这是首次安装或升级。失败的情况下,该应用程序已被卸载并再次安装..现在您有机会清理该应用程序数据。

如果数据敏感,您可能希望使用其他解决方案在卸载时删除文件(到目前为止,我还没有看到微软提供的选项)