目前我做了以下內容:運行exe文件,同時它仍然打開C#
- 包含在資源文件中的EXE文件。
- 在運行時,我提取EXE文件並將其寫入HDD上的文件,並使用「DeleteOnClose」選項。
- 很明顯,II不關閉文件,所以它仍然在磁盤上。
- 我去路徑並雙擊它,但它拒絕打開。
- 如果我使用「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.
沒有關係,但我會一直增加一些延遲while循環 –