2017-04-07 51 views
0

我使用的是安裝項目,我創建了一個安裝程序類:打開的應用程序安裝後不能正常工作上安裝「人人」

using System; 
using System.ComponentModel; 
using System.Runtime.Remoting.Contexts; 

namespace Client.Common 
{ 
    [RunInstaller(true)] 
    public class Installer : System.Configuration.Install.Installer 
    { 
     public Installer() 
     { 

     } 

     public override void Commit(System.Collections.IDictionary savedState) 
     { 
      try 
      { 
       base.Commit(savedState); 



       System.Diagnostics.Process.Start(Context.Parameters["TARGETDIR"] + "Client.UI.exe"); 

       base.Dispose(); 
      } 
      catch (Exception ex) 
      { 

      } 
     } 
    } 
} 

而且我設置我的承諾自定義操作的CustomActionData:

/TARGETDIR="[TARGETDIR]\" 

當我運行MSI來安裝這工作得很好「只有我」,它開闢了exe文件,但是當我安裝「所有人」它不運行exe。

我是否錯過了一些可以讓「每個人」都發生的事情?

+0

你是那個系統上的管理員用戶嗎?當你爲所有人安裝應用程序時,它將安裝在全球的位置。 –

+0

@SushilMate是我是管理員 – John

+0

我想這可能會幫助你。 http://stackoverflow.com/a/11490003/2745294 –

回答

0

當您將其作爲我自己安裝時,自定義操作使用安裝用戶的憑據運行,誰是當前交互式登錄用戶,這就如同從資源管理器或快捷方式運行應用程序一樣。

當您在Everyone安裝中運行自定義操作時,它將使用本地系統帳戶的憑據運行。這可能會導致任何潛在的問題或崩潰。例如,出於安全原因,系統帳戶不允許向交互式用戶的桌面顯示UI;如果您嘗試訪問用戶配置文件位置(桌面,用戶數據文件夾等),則可能會因爲系統帳戶沒有這些位置而崩潰;系統帳戶沒有網絡權限,因此使用網絡會導致問題。沒有確切知道你的代碼試圖做什麼,沒有辦法說出哪些可能是問題。