2012-11-29 49 views
0

我们使用msi来安装我们的程序。我们自定义安装类似的代码下面:安装完成后以安装用户身份运行程序

using System; 
using System.Configuration.Install; 

[RunInstaller(true)] 
public partial class Installer1 : Installer 
{ 

    protected override void OnAfterInstall(IDictionary savedState) 
    { 
     base.OnAfterInstall(savedState); 
     MyProgram.Start(); 
    } 
} 

的问题是,因为MSIEXEC被作为SYSTEM运行该程序将启动,以系统用户。是否有一种明智的方式让程序以最初执行msi而不是SYSTEM的用户身份启动?

回答

1

看看关于如何在安装结束时启动未提升的过程本条

start a non-elevated process at the end of the installation

另一种办法是做到以下几点

运行任何应用程序安装完成后,右键单击您的安装项目,单击自定义操作。然后右键单击提交,添加自定义操作,然后选择您想要运行的文件。请注意,它必须已经存在于您的应用程序文件夹中,因为您仍在运行程序,所以您的情况不应该成为问题。只需选择您的项目的输出。

然后,单击此添加的.exe,并将InstallerClass更改为false。这是至关重要的,因为它会另外查找安装程序。

相关问题