2012-11-12 62 views
0

我嘗試使用類ProcessInfo開始從C#ILASMProccess信息給出了一個錯誤,但一個bat文件不

string arguments = string.Format("\"{0}\" /exe /output:\"{1}\" /debug=IMPL", ilFullFileName, exeFileFullName); 
ProcessStartInfo processStartInfo = new ProcessStartInfo(CILCompiler, arguments); 
processStartInfo.UseShellExecute = false; 
processStartInfo.CreateNoWindow = false; 
processStartInfo.WorkingDirectory = @"c:\Windows\Microsoft.NET\Framework\v4.0.30319\"; 
using (Process process = Process.Start(processStartInfo)) 
{ 
    process.WaitForExit(); 
} 

的論據是:

"path_to_il.il" /exe /output:"path_to_exe.exe" /debug=IMPL 

,然後它給我的錯誤:

The application was unable to start correctly (0xc0000007b). Click Ok to close the application. 

奇怪的是,當我使用bat文件手動執行完全相同的操作時

"c:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe" "path_to_il.il" /exe /output:"path_to_exe.exe" /debug=IMPL 
pause 

它的工作。

我錯過了什麼?

+0

爲什麼你給CILCompiler作爲第一個輸入ProcesStartInfo?不同你在參數中指定ilasm.exe?你可以嘗試將ProcessStartInof.FileName設置爲ilasm.exe並從參數中刪除ilasm.exe? –

+0

它不存在於參數中。 –

+0

對不起,你能嘗試設置ProcessStartInof.FileName到ilasm.exe –

回答

0

我認爲你需要設置文件名以及:

 processStartInfo.FileName = "ilasm.exe"; 
相關問題