【问题标题】:Help in Custom action Setup project自定义操作设置项目中的帮助
【发布时间】:2011-03-06 10:03:30
【问题描述】:

请说出你的想法:

在解决方案文件中,我有两个项目 PROJECTA 和 SETUP 项目。创建 PROJECTA 的安装程序后,安装程序“example.msi”包含 PROJECTA.exe(或活动输出 ) 的项目。

在安装“example.msi”时,我想在后台运行 PROJECTA.exe。

我尝试了自定义控件和安装程序类

如果给出了 exe 的路径(如下所示),它可以正常工作。但这不是预期的行为,我希望在安装之前将 example.msi 中的 PROJECTA.exe 复制到该位置,以便我可以在安装期间从那里运行。

如何做到这一点。

C# 语法:

[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]

    public override void Install(IDictionary stateSaver)
    {
        base.Install(stateSaver);
    }

    [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
    public override void Commit(IDictionary savedState)
    {
        base.Commit(savedState);
        string s="C:\\xxx\\PROJECTA.exe";
        System.Diagnostics.Process.Start(s);

    }

提前谢谢你。

【问题讨论】:

  • 这没有意义,也不是推荐的方法。如果您需要应用程序的某些功能,正确的方法是在自定义操作(EXE 或 DLL)中移动该功能。这样,在安装期间使用自定义操作并仅执行安装操作,并且您的应用程序安装在目标计算机上并用作应用程序。

标签: .net setup-project custom-action


【解决方案1】:

使 PROJECTA.exe 成为 MSI 安装,然后将其添加到您的二进制表中。如果要在 UI 序列中完成,则创建类型为 50 的 CustomAction,如果要在 exec 序列中完成,则创建类型 7。您不能在 .NET CA 中执行此操作,因为您一次只能运行 1 个 MSI 安装程序实例。通过运行嵌套安装程序,您基本上共享相同的 MSI 安装程序引擎实例

说了这么多之后,嵌套安装程序可能会很痛苦,如果你能提供帮助,应该避免它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多