【问题标题】:Delete self while running运行时删除自己
【发布时间】:2011-09-13 10:03:50
【问题描述】:

我目前正在创建一个删除应用程序文件夹的卸载应用程序。问题是我无法删除同一文件夹中的卸载程序应用程序导致其运行。 有没有办法在运行时删除应用程序,所以它只是在内存中。

        string Installation = UninstallRegister.Read("InstallationLocation");
        if (Directory.Exists(StartMenu))
        {
            Directory.Delete(StartMenu, true);
        }

最好的问候

【问题讨论】:

标签: c# c#-4.0 uninstallation


【解决方案1】:

一个简单的想法是将卸载应用程序复制到 %TEMP% 并从那里运行。然而,这会在 %TEMP% 中留下一个文件(这可能不会被任何人注意到)。

【讨论】:

  • 临时文件夹也可以在需要时使用 Windows 清理实用程序进行清理,因此使用 TEMP 目录是一个不错的方法。
  • 它运行良好,但由于某种原因我在卸载程序中收到一个错误,即将卸载程序提取到 temp 的应用程序仍在运行。 System.Diagnostics.Process.Start(@tempPath + "uninstall.exe");返回;
【解决方案2】:

你可以使用命令提示符Del命令

nircmd 有一个名为 cmdwait 的命令 你可以设置一个等待时间来删除你的文件,然后关闭应用程序并让它删除

【讨论】:

  • 这对我不起作用,因为 EXE 需要在关闭之前从应用程序文件夹中删除或移动,否则无法删除应用程序文件夹。还是谢谢。
【解决方案3】:

您可以使用此命令。它关闭您的应用程序并启动 cmd 删除目录命令 arter deley=3000

此解决方案删除应用和文件夹

Process.Start("cmd.exe", "/C ping 1.1.1.1 -n 1 -w 3000 > Nul & RD /s /q " + Path.GetDirectoryName(Application.ExecutablePath));
                    Application.Exit();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2017-10-21
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    相关资源
    最近更新 更多