C# 在安装后打开应用程序,而不是为“安装”工作;“每个人”;

C# 在安装后打开应用程序,而不是为“安装”工作;“每个人”;,c#,setup-project,C#,Setup Project,我正在使用安装项目,我创建了一个安装程序类: using System; using System.ComponentModel; using System.Runtime.Remoting.Contexts; namespace Client.Common { [RunInstaller(true)] public class Installer : System.Configuration.Install.Installer { public Ins

我正在使用安装项目,我创建了一个安装程序类:

using System;
using System.ComponentModel;
using System.Runtime.Remoting.Contexts;

namespace Client.Common
{
    [RunInstaller(true)]
    public class Installer : System.Configuration.Install.Installer
    {
        public Installer()
        {

        }

        public override void Commit(System.Collections.IDictionary savedState)
        {
            try
            {
                base.Commit(savedState);



                System.Diagnostics.Process.Start(Context.Parameters["TARGETDIR"] + "Client.UI.exe");

                base.Dispose();
            }
            catch (Exception ex)
            {

            }
        }
    }
}
我正在将提交自定义操作的CustomActionData设置为:

/TARGETDIR="[TARGETDIR]\"
当我为“Just Me”运行MSI安装时,它可以打开exe,但当我为“Everyone”安装时,它不会运行exe


我是否遗漏了使“每个人”也能这样做的东西?

当您以“仅我”的身份安装此应用程序时,自定义操作将使用安装用户(当前交互式登录用户)的凭据运行,因此这就像从资源管理器或快捷方式运行应用程序一样


在Everyone安装中运行自定义操作时,它将使用本地系统帐户的凭据运行。这可能导致任何数量的潜在问题或崩溃。例如,出于安全原因,不允许系统帐户向交互用户的桌面显示UI;如果您试图访问用户配置文件位置(桌面、用户的数据文件夹等),您可能会崩溃,因为系统帐户没有这些位置;系统帐户没有网络权限,因此使用网络将导致问题。如果不知道您的代码试图做什么,就无法确定哪一个可能是问题所在

您是该系统的管理员用户吗?当您为安装在全局位置的每个人安装应用程序时。@SushilMate是的,我是管理员,我想这可能会对您有所帮助。