安装完成后,以安装用户身份运行程序

时间:2012-11-29 00:57:26

标签: c# .net msiexec

我们使用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();
    }
}

问题是程序将以SYSTEM用户身份启动,因为msiexec正在以SYSTEM身份运行。是否有一种合理的方法让程序以最初执行msi而不是SYSTEM的用户身份启动?

1 个答案:

答案 0 :(得分:1)

请查看有关如何在安装结束时启动非提升流程的文章

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

另一种选择是执行以下操作

要在安装完成后运行任何应用程序,请右键单击您的安装项目,然后单击“自定义操作”。然后右键单击Commit,Add Custom Action,并选择要运行的文件。请注意,它必须已经在您的应用程序文件夹中,因为您运行程序无论如何都不应该是您的问题。只需选择项目的输出即可。

然后,单击此添加的.exe,并将InstallerClass更改为false。这很重要,因为它会寻找安装程序。