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

cav*_*ick 9 windows-installer wix wix3.5

我有一个奇怪的问题,虽然不重要但我想知道它为什么会发生.

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

<InstallExecuteSequence>
    <Custom Action="CA_SSLCertGenerateInstall" After="WriteRegistryValues">
        <![CDATA[NOT REMOVE]]>
    </Custom>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)

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

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

Yan*_*nko 9

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

   <CustomActionRef Id="CA_SSLCertGenerateInstall" />
Run Code Online (Sandbox Code Playgroud)

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