Wix工具集-一个属性中的复合属性
使用Wix,如果本地计算机的操作系统与几个有效操作系统之一匹配,我将发布一个警告对话框。例如,我可以通过将Wix工具集-一个属性中的复合属性,wix,windows-installer,wix3.7,Wix,Windows Installer,Wix3.7,使用Wix,如果本地计算机的操作系统与几个有效操作系统之一匹配,我将发布一个警告对话框。例如,我可以通过将VersionNT=601放入publish标记的条件部分来执行此检查 因为我需要检查多个操作系统和类型(服务器、域控制器等),所以我希望将其中一些条件存储在属性中,并在多个发布条件中使用这些自定义属性 比如: <Property Id="WinServer08R2" Value="VersionNT = 601 AND MsiNTProductType = 3" /> 然
VersionNT=601
放入publish标记的条件部分来执行此检查
因为我需要检查多个操作系统和类型(服务器、域控制器等),所以我希望将其中一些条件存储在属性中,并在多个发布条件中使用这些自定义属性
比如:
<Property Id="WinServer08R2" Value="VersionNT = 601 AND MsiNTProductType = 3" />
然后使用类似以下内容的属性:
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="WarningDlg">
WinServer08R2 AND Not Installed
</Publish>
...
WinServer08R2未安装
...
到目前为止,这种方法和它的细微变化对我都不起作用。有没有其他人试过这个并让它起作用?有人可能会建议我简单地使用括号并使其工作,但这是一个简化的示例,条件很快就会失控
提前感谢。
属性/@Value
(以及相关的内部文本)不是条件,而是属性的实际值。因此,您现在拥有一个名为WinServer08R2
的属性,其文本值为VersionNT=601和MsiNTProductType=3
。因此WinServer08R2
的计算结果始终为true,因为它有一个值
您应该能够通过使用Orca打开生成的MSI并查看属性
表来验证这一点
您需要的是根据条件设置属性
<SetProperty Id="WinServer08R2" Value="1">
VersionNT = 601 AND MsiNTProductType = 3
</SetProperty>
VersionNT=601和MsiNTProductType=3
然后您只需使用WinServer08R2=1
或WinServer08R2
测试该属性
不要忘了使用
Before
、After
或sequence
属性对自定义操作排序。属性/@Value
(以及相关的内部文本)不是条件,它们是属性的实际值。因此,您现在拥有一个名为WinServer08R2
的属性,其文本值为VersionNT=601和MsiNTProductType=3
。因此WinServer08R2
的计算结果始终为true,因为它有一个值
您应该能够通过使用Orca打开生成的MSI并查看属性
表来验证这一点
您需要的是根据条件设置属性
<SetProperty Id="WinServer08R2" Value="1">
VersionNT = 601 AND MsiNTProductType = 3
</SetProperty>
VersionNT=601和MsiNTProductType=3
然后您只需使用WinServer08R2=1
或WinServer08R2
测试该属性
不要忘记使用前
、后
或序列
属性对自定义操作排序。可能重复的