私は次のことを行います:
実行可能ファイルをにコピーします
C:\temp\x.exeで実行可能ファイルを開始し、 によって返されたオブジェクト
System.Diagnostics.Process.Startを呼び出して、プロセスが同期的に終了するのを待ちます。WaitForExitProcessStart実行可能ファイルを削除する
C:\temp\x.exe
一部のマシンでは、これはうまく機能しますが、他のマシンでは、ファイルがまだ使用されているため、への呼び出しがDeleteFile失敗します。したがって、一度WaitForExit戻ったとしても、Windows が EXE で終了したことを意味するわけではないようです。
ここでのオプションは何ですか? DeleteFile削除が成功するか、ループがタイムアウトするまで、数ミリ秒後にループで再試行することは明らかです。しかし、ファイルがすべての人によって閉じられるのを待つためのよりクリーンな方法はありますか?