【问题标题】:Removing extra files after uninstalling a clickonce application卸载 clickonce 应用程序后删除额外文件
【发布时间】:2011-12-11 08:44:38
【问题描述】:

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

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

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

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

谢谢

JS

【问题讨论】:

  • 安装时是否知道额外的文件名?如果是这样,您是否可以简单地提供要安装的空文件以便卸载程序将其删除?
  • 对于日志文件名是固定的,但是附件名是随机生成的。但附件文件夹是已知路径

标签: c#-4.0 clickonce uninstallation


【解决方案1】:

卸载 ClickOnce 应用程序时,除了卸载 ClickOnce 应用程序外,没有其他方法可以执行任何操作。

您是否考虑将文件放在 ApplicationDeployment.CurrentDeployment.DataDirectory 中?然后在卸载应用程序时将它们删除。

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

【讨论】:

  • 感谢您的回答罗宾。我们有一些由多窗口用户共享的数据库文件。因为我们想在同一台机器上的不同 Windows 用户之间共享数据。我想一种可能的方法是构建一个 .msi 安装程序并将其嵌入到 clickonce setup.exe 中。这样,我们可能会有自定义安装/卸载操作。但是我需要再次担心升级情况......
  • 我不知道为什么,但对我来说,这个文件夹 (ApplicationDeployment.CurrentDeployment.DataDirectory) 没有被删除
【解决方案2】:

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

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

在 ApplicationDeployment.CurrentDeployment.DataDirectory 中留下一个文件。

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

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

【讨论】:

    猜你喜欢
    • 2013-08-31
    • 1970-01-01
    • 2017-09-06
    • 2011-06-26
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多