【问题标题】:Wix toolset MSI: Fail the installer when property value is not validWix 工具集 MSI:当属性值无效时安装程序失败
【发布时间】:2020-12-17 23:04:52
【问题描述】:

我有一个使用 Wix 创建的 MSI

它在product.wxs 文件中具有如下定义的属性

<Property Id="MY_FLAG">false</Property>

我将通过以下方式从命令行调用我的 MSI

  • msiexec /i xyz.msi MY_FLAG=true
  • msiexec /i xyz.msi

如果输入无效,我希望我的 MSI 失败,例如

msiexec /i xyz.msi MY_FLAG=sDGsgfdsf

我希望我的安装只有在有人将MY_FLAG 作为真/假传递或根本不使用MY_FLAG 时才能继续。

如果将除真/假之外的任何其他值传递给MY_FLAG,我希望我的 MSI 失败。 MSI 应该失败,而不仅仅是中止。它应该会失败。

提前感谢您的帮助。

【问题讨论】:

    标签: wix windows-installer


    【解决方案1】:

    查看LaunchConditions 操作。在 LaunchCondition 操作中的安装早期对其进行检查。这是您在 MSI 中尝试的最佳实践方式。

    【讨论】:

      【解决方案2】:

      Launch conditions 必须为真,否则设置将中止。这是一个你可以尝试的sn-p。

      启动 cmd.exe 并将 12 或其他值传递给 msiexec.exe ,然后是快速顺序:inspectobserveobservations

      示例命令行:msiexec /i WiXLaunchConditionTest.msi MYFLAG=0

      <!-- LAUNCH CONDITION -->
      
      <Property Id="MYFLAG" Hidden="yes" Secure="yes">Wrong Value</Property>
      <Condition Message="Value for MYFLAG must be 1 (true) or 0 (false)">
        <![CDATA[MYFLAG=0 OR MYFLAG=1]]>
      </Condition>
      

      这是github.com上的完整示例:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-10
        • 1970-01-01
        • 1970-01-01
        • 2021-02-18
        相关资源
        最近更新 更多