【问题标题】:InstallExecuteSequence in Fragment not included in installer片段中的 InstallExecuteSequence 未包含在安装程序中
【发布时间】:2011-08-31 19:34:53
【问题描述】:

我有一个奇怪的问题,虽然不是很严重,但我想知道为什么会这样。

完成我相当复杂的安装程序后,我决定重构代码并将不同的任务抽象为单独的片段。我有在 WriteRegistryValues 操作之后调用的 C# CustomAction。

<InstallExecuteSequence>
    <Custom Action="CA_SSLCertGenerateInstall" After="WriteRegistryValues">
        <![CDATA[NOT REMOVE]]>
    </Custom>
</InstallExecuteSequence>

但是,当我将上面的 sn-p 从 Product.wxs 移到 Fragment 中时,该 dll 不包含在安装程序中,显然没有调用 CustomAction。

查看架构文档 (http://wix.sourceforge.net/manual-wix3/wix_xsd_fragment.htm) 时,InstallExecuteSequence 显然是 Fragment 的有效子代。

【问题讨论】:

    标签: wix windows-installer wix3.5


    【解决方案1】:

    除非您从 Product/Module 元素中引用其中的任何元素,否则不会包含片段的内容。因此,在您的情况下,您应该将以下行添加到您的 Product.wxs:

       <CustomActionRef Id="CA_SSLCertGenerateInstall" />
    

    注意:将包含该片段的全部内容,而不仅仅是您引用的自定义操作。

    【讨论】:

    • 需要注意的是,在 Fragment 内部,必须定义 CustomAction 和 Custom 元素。如果 CustomAction 是在一个片段中定义的,而对这个 CA 的调用是在另一个片段中定义的,那么在 Product.wxs 中引用 CA 就不会调用 CA。
    猜你喜欢
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 2013-04-11
    相关资源
    最近更新 更多