2013-07-20 63 views
0

安装MSI我有一个奇怪的问题,通过窗口服务

我有一个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(); 
+0

只是一个问题......对于微星,你没有保留任何屏幕?服务是否自动安装一切? –

+0

我正在进行静音安装。所以我没有看到任何屏幕。 – Kurubaran

+0

您可以在执行msi的服务中显示代码吗? –

回答

1

InstallAllUsers在MSI设置为false属性。我的Windows服务在Local System account下运行,我的机器使用windows authenticationadministrator account下登录。因此,当安装发生时,假设用户安装了MSI,而不是使用Windows身份验证登录到计算机的用户,因此它没有显示在开始菜单和程序和功能下。

我没有必要保持InstallAllUsers为false,所以我简单地说它是真的,这解决了我的问题。