Fragment中的InstallExecuteSequence未包含在安装程序中

时间:2011-05-24 10:07:01

标签: wix windows-installer wix3.5

我有一个奇怪的问题,虽然不是很关键,但我想知道为什么会发生这种情况。

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

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

但是,当我将上述代码段从Product.wxs移动到Fragment中时,dll不会包含在安装程序中,显然不会调用CustomAction。

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

1 个答案:

答案 0 :(得分:9)

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

   <CustomActionRef Id="CA_SSLCertGenerateInstall" />

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