[英]Installing MSI through windows service
我有一個奇怪的問題,
我有一個WPF application
。 我為此創建了一個windows installer
,安裝將在用戶的“開始”菜單中創建應用程序快捷方式。 我正在通過windows service
安裝此MSI。 通過Windows服務的安裝工作正常,但它沒有在開始菜單中創建快捷方式,我也沒有在“程序和功能”下看到此應用程序。 但是,如果我手動安裝此程序,一切正常。 任何線索為什么會這樣?
執行MSI的代碼
Process installProcess = new Process();
//Assign required properties
installProcess.StartInfo.FileName = MSIEXEC;
installProcess.StartInfo.RedirectStandardError = true;
installProcess.StartInfo.UseShellExecute = false;
LogManager.Write("Process object is created");
//Create new StringBuilder instance
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(SYMBOL_SLASH);
stringBuilder.Append(SYMBOL_INSTALL);
stringBuilder.Append(installerPath);
stringBuilder.Append(SYMBOL_QN);
LogManager.Write("StringBuilder is created: " + stringBuilder.ToString());
installProcess.StartInfo.Arguments = stringBuilder.ToString();
installProcess.Start();
MSI的InstallAllUsers
屬性設置為false
。 我的Windows服務正在“ Local System account
下運行,並且我的計算機已通過windows authentication
以administrator account
登錄。 因此,當安裝發生時,假定不是由使用Windows身份驗證登錄到計算機的用戶安裝了MSI,因此該用戶未在“開始”菜單中和“程序和功能”下顯示。
對我而言,不必將InstallAllUsers保留為false,因此我就把它設置為true即可解決了我的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.