2016-11-09 53 views
1

我需要能夠在最終用戶計算機上安裝Crystal報表,但網絡安全不會允許它在普通用戶登錄時使用,因此必須「運行作爲不同的用戶'安裝在每個桌面上。C#如何以不同用戶的身份運行msi安裝包

我想創建一個小的應用程序,這將允許任何用戶安裝Crystal Reports ..所以到目前爲止,我有:

 Process p = new Process(); 
     p.StartInfo.FileName = @"C:\cabs\CRRuntime_32bit_13_0_5.msi"; 
     p.StartInfo.Arguments = "/i \"C:\\Application.msi\"/qn"; 
     p.StartInfo.UserName = uname; 
     p.StartInfo.Password = pword; 
     p.StartInfo.Domain = domain; 
     p.StartInfo.UseShellExecute = false; 


     try 
     { 
      p.Start(); 
     } 
     catch(Exception er) 
     { 
      MessageBox.Show(er.Message); 
     } 

當我嘗試運行這段代碼,我看到消息「指定的可執行文件不是此OS平臺的有效應用程序「

我錯過了什麼嗎?

CHeers

回答

0

MSI不是windows中的可執行文件。你應該叫msiexec與您的msi文件作爲參數

Process p = new Process(); 
p.StartInfo.FileName = @"C:\Windows\System32\msiexec.exe"; 
p.StartInfo.Arguments = @"C:\cabs\CRRuntime_32bit_13_0_5.msi"; 
p.StartInfo.UserName = uname; 
p.StartInfo.Password = pword; 
p.StartInfo.Domain = domain; 
p.StartInfo.UseShellExecute = false; 
+1

感謝,所有缺少的是@ 「I/C:\出租車\ CRRuntime_32bit_13_0_5.msi」;只需要我/開關啓動安裝程序......歡呼聲 – Andie

相關問題