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

问题描述 投票:0回答:2

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

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

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

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

谢谢

JS

c#-4.0 clickonce uninstall
2个回答
1
投票

卸载ClickOnce应用程序而非卸载ClickOnce应用程序时,无法执行任何操作。

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

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


0
投票

此解决方案适用于多次重新安装(干净),但它不会在上次卸载时删除数据,也不会在下次安装之前删除。

Stil在卸载时没有自定义操作位置来删除clickonce范围之外的文件。

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

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

如果数据是敏感的,您可能希望使用其他解决方案在卸载时删除文件(截至目前我没有看到Microsoft为我们提供了一个选项)

© www.soinside.com 2019 - 2024. All rights reserved.