WIX 中功能的自定义操作
Posted
技术标签:
【中文标题】WIX 中功能的自定义操作【英文标题】:Custom Action for Feature in WIX 【发布时间】:2018-02-27 12:35:00 【问题描述】:我正在尝试通过我的安装执行一个 EXE 文件,如果相关功能将安装在功能树中,则应该安装此文件。 我有两个问题:
1-如何将自定义操作与此功能相关联。“条件”
2- 如何在生成的文件中包含这个 exe 文件。 “这个 EXE 文件是我已经在 WIX BOOTSTRAPPER 中进行的 SQL 安装”
http://apprize.info/web/wix/13.html
我的代码是
<Feature Id="SubFeature1" Title="SQL Installation" Level="1" >
<ComponentRef Id="SubComponent1"/>
</Feature>
<Feature Id="SubFeature2" Title="Second Subfeature" Level="1" >
<ComponentRef Id="SubComponent2"/>
<!-- <Condition Level="0">IISMAJORVERSION=""</Condition> -->
</Feature>
</Feature>
<CustomAction Id="CreateSQLINSTALLER" Directory="BMSS4_Installer"
Execute= "deferred" Impersonate="no" Return="ignore"
ExeCommand="[BMSS4_Installer]Sql_Installation_Test1.exe -install" />
<InstallExecuteSequence>
<Custom Action="CreateSQLINSTALLER" Before="InstallFinalize"><![CDATA[(&SubFeature1)]]></Custom>
</InstallExecuteSequence>
Sql_Installation_Test1.exe 包含在主文件夹中,因此 BMSS4_Installer.. 但是在Directory标签om CustomAction中直接使用它是否正确!
【问题讨论】:
【参考方案1】:这里记录了特征条件:
https://msdn.microsoft.com/en-us/library/aa368012(v=vs.85).aspx
处于功能的动作状态。基本上你使用的条件是:
&featurename=3
其中 3 是 INSTALLSTATE_LOCAL,如文档中所述。条件可以使用的地方有限制,主要是在 CostFinalize 之后。
不清楚您是否安装了某个版本的 SQL 本身,但它有自己的安装并且不需要重新打包,例如,它是与 Burn 一起安装的先决条件。如果它是您的单独 MSI 设置,那么 Burn 包可能是安装它和您的其他 MSI 的最佳方式。
【讨论】:
以上是关于WIX 中功能的自定义操作的主要内容,如果未能解决你的问题,请参考以下文章