2013-12-17 38 views
2

我有下面的C#代碼:如何在C#中運行靜默安裝

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 
Process.Start("cmd.exe", "/c" + desktopPath + "\\" + "MyInstaller_7.1.51.14.exe –s –v –qn"); 

第一行得到我的桌面,.exe文件所在的路徑。字符串desktopPath用於第二行。

第二行是應該到在無聲模式下啓動安裝程序,以使該過程在後臺運行並安裝嚮導不會出現在所有。在命令提示符下運行desktopPath + "\\" + "MyInstaller_7.1.51.14.exe –s –v –qn"的字符串結果工作得很好,安裝程序以靜默模式運行。如果你想知道的

desktopPath + "\\" + "MyInstaller_7.1.51.14.exe –s –v –qn"

字符串結果是

C:\Users\ME\Desktop\MyInstaller_7.1.51.14.exe -s -v -qn

,並在命令提示運行此運行在無聲模式下安裝。

不幸的是,觸發在C#代碼相同的命令,因爲這:

Process.Start("cmd.exe", "/c" + desktopPath + "\\" + "MyInstaller_7.1.51.14.exe –s –v –qn"); 

不以靜默模式運行安裝程序。相反,該向導出現,對用戶可見。

有誰知道我怎麼能修改此:

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 
Process.Start("cmd.exe", "/c" + desktopPath + "\\" + "MyInstaller_7.1.51.14.exe –s –v –qn"); 

,以便安裝程序實際運行的靜音模式,而無需安裝UI的表現?

SIDE注意:-s -v -qn是用於在靜音模式下運行的開關。

+0

嘗試在可執行文件的名稱前移動所有標誌。 – Amy

+0

@Amy,之前的可執行文件,在哪裏? – Zolt

+0

@Amy,如果你的意思是/ C的位置,那麼我已經試過了。 – Zolt

回答

0

嘗試直接運行安裝程序:

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 
string installerPath = Path.Combine(desktopPath, "MyInstaller_7.1.51.14.exe"); 
Process.Start(installerPath, "–s –v –qn"); 
+0

這是一個很好的嘗試,但安裝程序的用戶界面仍然顯示,當我嘗試它。不知道爲什麼。這就像開關由於某種原因而被忽略。 – Zolt

1

試試這個,它爲我工作:

ProcessStartInfo psi = new ProcessStartInfo(); 
psi.Arguments = "–s –v –qn"; 
psi.CreateNoWindow = true; 
psi.WindowStyle = ProcessWindowStyle.Hidden; 
psi.FileName = "MyInstaller_7.1.51.14.exe"; 
Process.Start(psi); 

我不知道,如果你只要試圖隱藏窗口的參數,但也許這樣,它的一部分將不再是必要的。

請注意,我使用「notepad.exe」進行了成功的測試。也許你的安裝程序反應不同。

+0

是的,不幸的是,當我嘗試上面的代碼時,窗口仍然出現。不錯,儘管。 – Zolt

+0

@Ztt是-s開關是否表示「無聲」? –

+0

是的,-s開關設置爲「無聲」。 – Zolt