运行 exe 文件在 C# 中仍处于打开状态

Run exe file while it is still open in C#

目前我在做以下事情:

  1. 在资源文件中包含一个 EXE 文件。
  2. 在运行时,我提取 EXE 文件并将其写入 HDD 上的文件,使用 "DeleteOnClose" 选项。
  3. 显然我没有关闭文件,所以它保留在磁盘上。
  4. 我转到路径并双击它,但它拒绝打开。
  5. 如果我使用 "Process.Start" 我得到文件不存在的错误,尽管它在给定的路径中。
  6. 我将 FileShare 和 FileAccess 设置为 ReadWrite。
  7. 同样 Process.Start 不起作用。

这是我使用的代码:

byte[] exeFile =ExeSecure.Properties.Resources.ReqCheck;
//2) Create file to be deleted on close
FileStream aFile = new FileStream(@"c:\reco.exe", FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite, 20000, FileOptions.DeleteOnClose);
//3) Write Exe file content to HDD
aFile.Write(exeFile, 0, exeFile.Length);
aFile.Flush();
Thread.Sleep(100); //Wait a while for file to be flushed
while (!File.Exists(@"c:\reco.exe")); //Make sure file is there on HDD
    Process.Start("C:\reco.exe");//Start file , this always fails.

也许这只是您问题中的错字,但 Process.Start 中的路径不正确。您缺少 @ 符号:

Process.Start(@"C:\reco.exe");