Wix v4编译错误:Package元素包含意外子元素'LaunchCondition'
解决Wix v4中LaunchCondition元素的编译错误
Wix v4对元素结构做了调整,LaunchCondition不再是Package元素的直接子节点,按以下方式修改即可解决问题:
调整元素的归属与命名空间
LaunchCondition属于ui命名空间下的元素,需要添加ui:前缀,并且必须放在<UI>元素内部,不能直接嵌套在<Package>里。修正后的代码示例
调整你的Package.wxs文件结构如下:
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"> <Package Name="Serviço de Gestão de Ativos" Language="1033" Codepage="1252" Version="0.9.0.2" Manufacturer="Grupo Data" UpgradeCode="some-update-guid" InstallerVersion="200"> <PropertyRef Id="NETFRAMEWORK48" /> <ui:UI> <ui:LaunchCondition Condition="NOT NETFRAMEWORK48" Message="!(loc.LanchCondition)" /> </ui:UI> (...)
- 关于Condition元素的补充说明
如果尝试使用Condition元素,它在Wix v4中是Package的直接子元素,作用是定义安装阻止条件,同样能在不满足要求时弹出提示并终止安装,语法如下:
<Package ...> <PropertyRef Id="NETFRAMEWORK48" /> <Condition Message="!(loc.LanchCondition)">NETFRAMEWORK48</Condition> </Package>
你可以根据实际需求选择其中一种实现方式。
内容的提问来源于stack exchange,提问作者Marcio Martins
相关产品推荐
相关产品推荐

