簡體   English   中英

通過Windows Service安裝MSI

[英]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 authenticationadministrator account登錄。 因此,當安裝發生時,假定不是由使用Windows身份驗證登錄到計算機的用戶安裝了MSI,因此該用戶未在“開始”菜單中和“程序和功能”下顯示。

對我而言,不必將InstallAllUsers保留為false,因此我就把它設置為true即可解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM