目前我执行以下操作:
- 在资源文件中包含 EXE 文件。
- 在运行时,我提取 EXE 文件并将其写入 HDD 上的文件,并使用“DeleteOnClose”选项。
- 显然,我没有关闭该文件,因此它保留在磁盘上。
- 我转到路径并双击它,但它拒绝打开。
- 如果我使用“Process.Start”,我会收到文件不存在错误,尽管它位于给定路径中。
- 我将 FileShare 和 FileAccess 设置为 ReadWrite。
- 同样,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");
关于c# - 在 C# 中运行仍处于打开状态的 exe 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30677236/