WiX Property passthrough无法正常工作(有时)

时间:2013-03-13 21:59:02

标签: wix windows-installer wix3.5

使用WiX 3.6我正在尝试创建一个MSI来静音安装内部产品。

一台机器,我的安装程序工作正常,但在其他机器上,安装程序失败并显示一条错误消息,指出属性值尚未从UI阶段传递到流程的安装阶段:

enter image description here

此错误来自我的WiX源中的保护条款:

    <Condition Message="The property SERVER must be defined on the commandline. Installation will abort.">
      <![CDATA[Installed or SERVER]]>
    </Condition>

为什么我的Guard子句会触发,即使我在命令行上提供了属性SERVER?

安装命令行:

msiexec /i 'C:\work\Excel.2010(x86).msi' SERVER=fsis-app-server ENVIRONMENT=Production SKIN=Black

根据我与谷歌教授协商后找到的所有内容,我所需要的只是将我的财产公开(通过使用所有大写字母)并标记Secure="yes"

<Property Id="SERVER"
          Secure="yes"/>

我已经做到了这一点,但它仍然没有用 - 任何想法我错过了什么?

其他细节......

...我的安装程序配置为每次都作为MajorUpgrade运行。

...我正专门部署到Windows 7.在我的机器上(确实有这个问题),我有Windows Installer。 V 5.0.7601.17514

...大多数机器升级都很好,但少数(<200中的10个)因此错误而失败。我的机器是一台(有助于排除故障)。此计算机上的程序和功能下未列出以前的版本。

更新#1

非常有趣,阅读日志。在安装过程中,我的属性(例如SERVER)会丢失其值。

如果我正在阅读正确的日志,那么之前的 MSI显示我的错误,而不是我当前正在运行的那个:

  

MSI(D8:D0)[13:20:19:213]:产品:Excel 2010的FSIS插件(32位)v4.7.1047.0 - 必须在命令行上定义属性SERVER。安装将中止。

我正在使用的安装程序是v4.8.9999.0,所以旧的版本号是我发生了什么的线索......虽然这与我原来的截图中的v4.5.0不匹配。

看起来我有两份工作......

...凝固这个机器的旧安装人员 ...更改安装程序以防止再次发生。

更新#2

我已经确认我的失败发生在卸载安装上。

    <Condition Message="The property SERVER must be defined on the commandline. Installation will abort.">
      <![CDATA[Installed or SERVER]]>
    </Condition>

为什么这个保护条款会触发并中止卸载?

我认为“安装或”的目的是让它在移除产品时能够正常工作。

0 个答案:

没有答案