如何比较wix ExePackage中的字符串?
Posted
技术标签:
【中文标题】如何比较wix ExePackage中的字符串?【英文标题】:How to compare strings in wix ExePackage? 【发布时间】:2014-04-29 11:48:31 【问题描述】:<ExePackage InstallCommand='/q /action=UPGRADE /HIDECONSOLE /IACCEPTSQLSERVERLICENSETERMS=1 /INSTANCENAME=ABC' InstallCondition="SqlVersion32 < v10.50.1600.1 AND SqlEdition32 = 'Express Edition'"/>
我正在使用上面的代码。在安装条件下,我想检查 SqlEdition32
(其值由注册表搜索提供)是否为 Express 版本,但我有错误提示:
错误 0x8007000d:无法解析条件“SqlVersion32
位置 46 是我将 SqlEdition32
字符串变量与字符串“Express Edition”进行比较的位置
我想知道如何在 WiX 中比较字符串?
【问题讨论】:
【参考方案1】:在字符串周围使用双引号,而不是单引号。
【讨论】:
【参考方案2】:您有两种解决方案:
-
你可以用单引号替换双引号,反之亦然,所以
你会有这样的东西:
InstallCondition='SqlVersion32 < v10.50.1600.1 AND SqlEdition32 = "Express Edition"'
-
或者用"替换单引号',你会得到:
InstallCondition="SqlVersion32 < v10.50.1600.1 AND SqlEdition32 = "Express Edition""
【讨论】:
以上是关于如何比较wix ExePackage中的字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何在安装 WiX Bundle 时避免卸载以前安装的 ExePackage(可再发行文件)?
WiX 刻录包安装程序 - 升级安装时未更新 ExePackage