2014-09-23 54 views
0

我將一些批處理文件自動化到一個C#應用程序中,但沒有多少運氣。我有我想要寫在C#使用C#中的參數執行.exe文件

"C:\Program Files\IIS Express\iisexpress.exe" /path:c:\windows\Microsoft.NET\Framework\v4.0.30319\ASP.NETWebAdminFiles /vpath:"/asp.netwebadminfiles" /port:61569 /clr:4.0 /ntlm 

下面是C#代碼,我在網上找到了下面的批處理文件(另有3),但它失敗:

using (Process proc = new Process()) 
{ 
    proc.StartInfo.FileName = "iisexpress.exe"; 
    proc.StartInfo.Arguments = @"/path:c:\windows\Microsoft.NET\Framework\v4.0.30319\ASP.NETWebAdminFiles /vpath:/asp.netwebadminfiles /port:61569 /clr:4.0 /ntlm"; 
    proc.StartInfo.UseShellExecute = false; 
    proc.StartInfo.RedirectStandardOutput = true; 
    proc.Start(); 
    proc.WaitForExit(); 
    Console.Out.WriteLine(proc.StandardOutput.ReadToEnd()); 
} 

我得到以下,沒有從谷歌的幫助:

型 'System.ComponentModel.Win32Exception' 未處理的異常發生在System.dll中

+0

添加周圍的參數值報價? 「@」/ path:「」c:\ windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ASP.NETWebAdminFiles「」/vpath:""/asp.netwebadminfiles「」/ port:61569 /clr:4.0/ntlm「 ' – 2014-09-23 13:36:55

+1

什麼是異常*消息*說的? – 2014-09-23 13:37:30

+0

@YuvalItzchakov異常:拋出:「系統找不到指定的文件」(System.ComponentModel.Win32Exception) 拋出System.ComponentModel.Win32Exception異常:「系統找不到指定的文件」 – Mark 2014-09-23 14:15:41

回答

4

你需要給Process.StartInfo.FileName的完整路徑EXE:

proc.StartInfo.FileName = @"C:\Program Files\IIS Express\iisexpress.exe"; 
+0

我試過這個,沒有得到錯誤,但命令窗口沒有出現任何文字。這是否意味着它仍然在後臺工作?對不起,我缺乏知識。 – Mark 2014-09-23 14:17:45

+0

我已經使用LINQPad測試過了,我看到正確註冊的網站。檢查你的IIS配置,確保它能正常工作 – 2014-09-23 14:20:35

+1

工作正常!謝謝! – Mark 2014-09-23 14:43:40