【问题标题】:Wix Toolset - Is there a way to validate silent install property valuesWix 工具集 - 有没有办法验证静默安装属性值
【发布时间】: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


    【解决方案1】:

    看来我解决了自己的问题;至少对于 Wix RadioButtonGroup 元素而言。

    在我的 product.wxs 等效文件中,我只添加了这两行

    <Property Id="RT_DB_LOGON_TYPE" Value="SqlAuth" />
    <Condition Message="!(loc.RT_DB_LOGON_TYPE_Messg)">RT_DB_LOGON_TYPE ~= "SqlAuth" OR RT_DB_LOGON_TYPE ~= "WinAuth"</Condition>
    

    在日志文件中,一切都如我所愿。 RT_DB_LOGON_TYPE:

    1) 设置为属性元素中的值 2) 被命令行中输入的值覆盖(例如 RT_DB_LOGON_TYPE= foo 3) 在启动条件中进行评估,记录在日志文件中。

    注意:我在日志文件之外没有发现此故障的视觉线索。

    【讨论】:

      猜你喜欢
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      • 2019-04-26
      相关资源
      最近更新 更多