删除临时文件时,C#app无例外地退出

时间:2017-11-30 18:38:28

标签: c# windows crash delete-file

我在C#程序(.Net 4.61)中有一个类,它使用Word和Amyuni PDF套件来构建格式化的PDF文件。在此过程中,将在用户的临时文件夹中创建四个临时PDF文件:

SitesComponent

当进程完成时,我会运行以下清理方法来删除在此过程中生成的任何临时文件:

private string TempFolder = Path.GetTempPath();

这几乎在所有已部署的Windows系统(所有64位Windows 7系统)上都有效,但是在其中一些系统中,当EraseTempFiles方法删除第三个临时文件时,应用程序会立即退出。没有抛出异常(我在try-catch中包围了File.Delete以确定这一点。)

使用Windows资源管理器删除文件没问题。

我已经尝试将所有临时文件保存在不同的文件夹中,并在不改变行为的情况下更改它们的命名方式。运行ProcDump以跟踪应用程序没有捕获任何内容,它只是报告:

private void EraseTempFiles()
{
    // For each temp file:
    foreach (string tempFile in TempFiles)
    {
        if (File.Exists(tempFile))
        {
            File.Delete(tempFile);
        }
    }
}

我还订阅了未处理的异常事件:

[23:54:52] The process has exited.
[23:54:52] Dump count not reached.

也永远不会调用该处理程序。

我从未见过像这样的程序退出,没有任何解释。似乎Windows本身可能会因为某些违规而杀死该进程,但我无法说明是什么,因为所有的临时文件基本相同,并且能够删除前两个没有问题。

之前有人见过这种行为吗?

1 个答案:

答案 0 :(得分:6)

禁用趋势科技后,删除临时文件时程序不再退出。重新启用趋势科技,当然,它会被杀死。现在需要确定如何允许趋势科技运行,但不要杀死我的应用程序!