C#:防止子进程锁定调用者文件夹

C#: Prevent Child Process to Lock the Caller Folder

我启动位于文件夹 myFolder 中的 app1.exe。

此 app1.exe 通过 Process.Start 在 C# 中调用另一个 app2.exe。

我关闭app1.exe.

app2.exe 试图删除 myFolder 但它说它已被锁定,因为 app2.exe 正在使用它,即使 app2.exe 没有对 myFolder 做任何事情。

注意:如果我单独启动 app2.exe(通过单击 .exe),我可以删除 myFolder。如果 app2.exe 是从 app1.exe 开始的,它只会阻止我。


有没有办法允许单独的进程删除其调用者文件夹? app1.exe 和 app2.exe 都在 C# 中。

查看启动app2时涉及的ProcessStartInfoProcess.StartInfo属性)。很可能 app2 开始时 WorkingDirectory 设置为 app1 所在的文件夹。如果是这种情况,您可以在启动 app2 之前尝试将 WorkingDirectory 设置到其他位置,或者您可以 app2 在启动后更改目录。