【问题标题】:Open application after install not working on install for "everyone"安装后打开应用程序无法为“每个人”安装
【发布时间】:2017-04-07 09:59:39
【问题描述】:

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

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]\"

当我运行 MSI 为“Just Me”安装时,它运行良好,它会打开 exe,但当我为“Everyone”安装时,它不会运行 exe。

我是否遗漏了一些东西以使“每个人”也能发生这种情况?

【问题讨论】:

  • 您是该系统的管理员用户吗?当您为安装在全球位置的每个人安装应用程序时。
  • @SushilMate 是的,我是管理员
  • 我想这可能会对你有所帮助。 stackoverflow.com/a/11490003/2745294

标签: c# setup-project


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-08-17
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 2023-03-09
    相关资源
    最近更新 更多