我正在使用WIX安装程序来生成exe,直到现在一切正常但现在我需要在exe包中添加一个检测条件,如下所示。
<ExePackage
Id="AccessRuntime2013"
DetectCondition="((MsAccessInstalled = Outlook.Application.15) AND (MSOffice2013RuntimeInstalled = 0))" >
MsAccessInstalled是一个存储Outlook版本的变量,MSOffice2013RuntimeInstalled是一个检查是否安装了访问运行时的变量。两个变量都设置正确。
只有在未安装MsAccessInstalled =“Outlook.Application.15”并且未安装MSOffice2013RuntimeInstalled时,才必须运行此exe。如果我将这两个条件分开运行,那么它可以正常工作它会将错误消息显示为Failed to parse condition "((MsAccessInstalled = Outlook.Application.15) AND (MSOffice2013RuntimeInstalled = 0))". Unexpected character at position
。请帮忙。
答案 0 :(得分:0)
将DetectCondition更改为
时会发生什么<ExePackage
Id="AccessRuntime2013"
DetectCondition="MsAccessInstalled ~= "Outlook.Application.15" AND MSOffice2013RuntimeInstalled = 0"
... />
您还可以在引导程序中制作一些测试util:Condition
标记来测试您的条件。
<util:Condition Message="MSAccessInstalled condition failed">MsAccessInstalled ~= "Outlook.Application.15"</Condition>
<util:Condition Message="MSOffice2013RuntimeInstalled condition failed">MSOffice2013RuntimeInstalled = 0</Condition>
运行引导程序并查看是否有任何条件失败。一旦您完成测试,请记得删除这些条件,因为如果投入生产它们会导致问题。