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的有效子项.
除非您从Product/Module元素引用其中的任何元素,否则不会包含片段的内容.因此,在您的情况下,您应该将以下行添加到Product.wxs:
<CustomActionRef Id="CA_SSLCertGenerateInstall" />
Run Code Online (Sandbox Code Playgroud)
注意:将包含该片段的全部内容,而不仅仅是您引用的自定义操作.