AFAIK 是这样完成的:
产品:
<Merge Id ="HelpInstaller" SourceFile="HelpInstaller.msm" Language="1033" DiskId="1">
<ConfigurationData Name="SurpressInstallation_Config" Value="&HelpFeature"/>
</Merge>
合并模块:
<Property Id="SupressInstallation" Value='0' />
<Substitution Table='CustomAction' Row='SetSupressInstallationProperty' Column='Target' Value='[=SupressInstallation_Config]'/>
<CustomAction Id='SetSupressInstallationProperty' Property='SupressInstallation' Value='[SupressInstallation]'/>
<InstallExecuteSequence>
<Custom Action='SetSupressInstallationProperty' Before='RegisterHelp' />
<Custom Action='RegisterHelp' After='CostFinalize'>(NOT Installed) AND (NOT UPGRADINGPRODUCTCODE) AND SupressInstallation = 3) </Custom>
</InstallExecuteSequence>
但是当我像上面那样做时,我得到一个错误:
遇到“msmErrorDataRequestFailed”类型的意外合并错误,目前没有要显示的错误消息。
谁能告诉我如何解决这个问题?我基本上想做的是仅在选择某个功能时才在合并模块中执行自定义操作。这是正确的方法吗?谢谢丹尼尔
最佳答案
您必须在模块下定义配置节点:
<Property Id="SupressInstallation" Value='0' />
<Configuration Name="SupressInstallation_Config" Format="Text"/>
<Substitution Table='CustomAction' Row='SetSupressInstallationProperty' Column='Target' Value='[=SupressInstallation_Config]'/>
<CustomAction Id='SetSupressInstallationProperty' Property='SupressInstallation' Value='[SupressInstallation]'/>
<InstallExecuteSequence>
<Custom Action='SetSupressInstallationProperty' Before='RegisterHelp' />
<Custom Action='RegisterHelp' After='CostFinalize'>(NOT Installed) AND (NOT UPGRADINGPRODUCTCODE) AND SupressInstallation = 3) </Custom>
</InstallExecuteSequence>
关于installation - 如何在 Wix 中使用可配置的合并模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2091724/