【问题标题】:How do I mark a directory to be deleted after reboot?重启后如何标记要删除的目录?
【发布时间】:2010-09-22 20:30:37
【问题描述】:

我有一个卸载程序,它执行一些操作,然后提示用户重新启动。我想在重新启动后删除一个目录。我知道有办法做到这一点,我只是不确定如何。

我正在使用 WiX 安装程序,并且我想我可以使用它来执行此操作,但我愿意接受其他选择(无论哪种最简单的都适合我)。我的目标平台是 Windows 7,不过如果它也适用于旧版本的 Windows,那就太好了。

重新启动后将此目录标记为删除的最简单方法是什么?

【问题讨论】:

    标签: windows-7 wix reboot


    【解决方案1】:

    如果您的文件处于锁定状态,Windows Installer 可以在重新启动后处理删除,但没有内置方式指示它仅在重新启动后删除它。我认为您可以这样做的唯一方法是使用自定义操作来记录指示它执行删除的 RunOnce 注册表项。您不能为此使用注册表表,因为 Windows Installer 无法在卸载过程中记录到注册表。

    不过,您在这条线之外涂色,所以我想了解为什么在确定它是否有效时需要此要求。

    【讨论】:

    • 好吧,安装程序不会知道该文件。这是应用程序下载的东西。事实上,它是一个windows服务,卸载后,在某个地方还有一个句柄。最简单的解决方案似乎是在卸载后用户重新启动后将其删除。
    • 可以让安装程序知道它没有安装的文件和文件夹。可以告诉它在安装、卸载或同时删除它们。只是不能明确告知要等到重新启动后再执行此操作,尽管如果存在锁定的文件,这将隐含地发生。
    • 听起来很完美。你知道我怎么会做这种事吗?
    【解决方案2】:

    尝试使用 SysInternal 的“MoveFile”。指定“”作为目标,然后噗!假设你最终不会陷入许可地狱...... :(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-07
      • 2011-01-06
      • 1970-01-01
      • 2014-03-19
      • 2021-05-23
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      相关资源
      最近更新 更多