无法使用 UAC 和管理员帐户在 C# 中以编程方式删除文件

Cannot delete file programmatically in C# with UAC and admin account

我正在为我的应用程序开发一个自我更新系统,该系统比较程序集版本号,然后擦除本地目录并复制新的服务器文件。该应用程序有一个需要 UAC 激活的自定义清单,并且 运行 在管理帐户下。下面是删除代码:

            /* Clear target directory */
        DirectoryInfo di = new DirectoryInfo(args[1]);
        foreach (FileInfo file in di.GetFiles())
        {
            file.Delete();
        }

在此之前,需要更新文件的进程被杀死。这是控制台输出: Output

程序成功删除了一个文件,但是在.exe出现时崩溃了。我一直在寻找解决方案几个小时,有人可以帮我吗?

我通过添加

解决了这个问题
System.Threading.Thread.Sleep(3000);

在我的更新程序尝试删除可执行文件之前,该进程实际上有时间结束。