如何比较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 &lt; v10.50.1600.1 AND SqlEdition32 = 'Express Edition'"/>

我正在使用上面的代码。在安装条件下,我想检查 SqlEdition32(其值由注册表搜索提供)是否为 Express 版本,但我有错误提示:

错误 0x8007000d:无法解析条件“SqlVersion32

位置 46 是我将 SqlEdition32 字符串变量与字符串“Express Edition”进行比较的位置 我想知道如何在 WiX 中比较字符串?

【问题讨论】:

【参考方案1】:

在字符串周围使用双引号,而不是单引号。

【讨论】:

【参考方案2】:

您有两种解决方案:

    你可以用单引号替换双引号,反之亦然,所以 你会有这样的东西:
InstallCondition='SqlVersion32
    &lt; v10.50.1600.1 AND SqlEdition32 = "Express Edition"'
    或者用"替换单引号',你会得到:
InstallCondition="SqlVersion32 &lt; v10.50.1600.1 AND
    SqlEdition32 = &quot;Express Edition&quot;"

【讨论】:

以上是关于如何比较wix ExePackage中的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在安装 WiX Bundle 时避免卸载以前安装的 ExePackage(可再发行文件)?

WiX 刻录包安装程序 - 升级安装时未更新 ExePackage

Wix Burn exepackage 属性

WiX ExePackage 缓存

如何为 Wix 刻录引导程序 exepackage 添加依赖文件夹

将 MsiPackage 安装为 /passive(WIX 工具集)