【发布时间】:2016-10-09 09:36:55
【问题描述】:
我想做的是验证在 msiexec /QN 调用中输入的属性值。
例如,对于我们的运行时 SQL Server 数据库身份验证,我们需要提供 Windows 身份验证和 SQL 用户身份验证。我在 UI Dialog 窗口上用 RadioButtonGroup 表示这些。 “RT_DB_LOGON_TYPE”属性的默认值是“SqlAuth”。
对于静默安装,我想:
1) 如果用户在静默安装命令行中没有为“RT_DB_LOGON_TYPE”属性输入任何值,则将“RT_DB_LOGON_TYPE”属性的默认值设置为“SqlAuth”。
2) 如果“RT_DB_LOGON_TYPE”属性的值设置为“SqlAuth 或“WinAuth”以外的值(不区分大小写),检查将失败的启动条件。
我的代码(位于我的 product.wxs 文件中):
<SetProperty Id="RT_DB_LOGON_TYPE" Value="SqlAuth" Before="LaunchConditions" Sequence="both">NOT RT_DB_LOGON_TYPE</SetProperty>
<Condition Message="!(loc.RT_DB_LOGON_TYPE_Messg)">RT_DB_LOGON_TYPE ~= "SqlAuth" OR RT_DB_LOGON_TYPE ~= "WinAuth"</Condition>
在构建 WiX MSI 包时,我收到以下错误:
[exec] D:\stuff\scripts\testNG\installation\wix_installer\dialogs\TenantDBConnectDlg.wxs(23):错误 LGHT0094:未解决对“片段:”部分中符号“属性:RT_DB_LOGON_TYPE”的引用。
有没有办法在 WiX 中进行这种类型的验证?
【问题讨论】:
标签: wix