【问题标题】:MSI Launch Conditions Custom ActionsMSI 启动条件自定义操作
【发布时间】:2009-02-26 16:42:28
【问题描述】:

我已经能够触发 C# 自定义操作来覆盖 MSI 的安装和提交阶段。但是,在部署 ASP.NET 应用程序时,我希望能够在安装开始之前执行检查。

我知道有启动条件,但是,我希望能够在此处插入我自己的代码来处理自己启动时的检查,因为我看到启动条件只是用于检查 IIS 等的正确版本?

谁能在这里指出我正确的方向,或者即使有办法让启动条件触发一些 C#?

【问题讨论】:

    标签: c# asp.net installation windows-installer custom-action


    【解决方案1】:

    我认为使用自定义操作设置属性值,然后运行启动条件来检查属性值是一种方法。但是,这似乎不适用于 VS 安装项目,因为自定义操作在启动条件之后才会运行。 WiX 将允许更大的控制,并且应该允许更早地执行自定义操作。

    一种粗略的做法是让自定义操作引发异常并回滚安装,但这将是一个丑陋的黑客攻击。

    我发现了一个forum thread 讨论如何检查某个服务是否在安装时运行,这可能会引导您走向正确的方向。

    【讨论】:

      【解决方案2】:

      只需在 LaunchConditions 之后立即安排您的自定义操作。结果对于所有意图和目的都是相同的。

      在 InstallShield 中,只需通过下拉菜单选择何时运行即可。或者使用 WiX,类似于:

        <Custom Action="BlahBlahBlah" After="LaunchConditions">1</Custom>
      

      与往常一样,对于刚开始使用 MSI 的任何人,我建议阅读 The Definitive Guide to Windows Installer。它提供了非常宝贵的底层知识(使用 Visual Studio 安装项目和 Orca),无论您使用 WiX、InstallShield 还是任何其他工具来构建 MSI 文件,这些知识都适用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 1970-01-01
        • 2011-11-23
        • 1970-01-01
        • 2014-10-14
        相关资源
        最近更新 更多