【问题标题】:WiX install condition fails during repair in systems with UAC在具有 UAC 的系统中修复期间 WiX 安装条件失败
【发布时间】:2011-05-09 05:32:07
【问题描述】:

我在维护模式下的安装条件存在问题,该问题仅发生在具有 UAC 的系统中。我正在进行注册表搜索以设置安装条件中使用的几个属性。这在初始安装期间有效,但是当我尝试进行修复或修改功能选择时,安装条件失败,并且我收到安装条件失败的消息。

这就是我的 wix 源代码的样子:

<Product Id="MyProduct" ... >
  <Package InstallPrivileges="elevated" ... />
  <Condition Message="This installtion requires product X or Y. 
                      Setup will now quit.">
    <![CDATA[(MYPROPERTY1 OR MYPROPERTY2)]]>
  </Condition>

  <Property Id="MYPROPERTY1">
    <RegistrySearch Id="MySearch1"
                    Root="HKLM"
                    Key="Software\Company\ProductX"
                    Name="Installed"
                    Type="raw"
                    Win64="no"/>
  </Property>
  <Property Id="MYPROPERTY2">
    <RegistrySearch Id="MySearch2"
                    Root="HKLM"
                    Key="Software\Company\ProductY"
                    Name="Installed"
                    Type="raw"
                    Win64="no"/>
  </Property>

  <!-- ... Features and components and stuff ... -->
</Product>

我假设 UAC 正在阻止我的注册表搜索发生,但我认为将 InstallPrivileges 设置为“提升”会导致修复期间出现 UAC 提示。我从来没有收到过 UAC 提示,只是修复失败了。如果我禁用 UAC,则修复按预期进行。我在这里错过了什么吗?

编辑:我应该指出,只有当我从 ARP 中选择“更改”,然后选择修复时才会发生故障。如果我直接从 ARP 中选择“修复”,它会按预期工作。

【问题讨论】:

    标签: installation wix uac


    【解决方案1】:

    记录修复以查看 AppSearch 设置的属性。还要考虑在您的条件上加上“或已安装”,以便条件仅在初始安装期间适用。由于产品 A 已被先卸载,因此无法安装产品 B,没有什么比这更烦人的了。

    更新:好日志和坏日志中的 AppSearch 的行为完全相同。问题是您没有将 @Secure 属性放在属性元素上,因此未在 SecureCustomProperties 属性中列出。如果您查看日志,您会发现一行显示“忽略不允许的属性”。欲了解更多信息,请阅读:

    Reasons why your setup may fail on Windows Vista

    【讨论】:

    • 克里斯托弗,感谢您的建议。我可以通过在安装条件中添加“OR Installed”来消除该错误,但我仍然想知道当 UAC 处于活动状态时是什么导致了不同的行为。我比较了 no-UAC 与 UAC 的日志,并且在两个实例中都设置了所有属性,但是,当 UAC 处于活动状态时,LaunchConditions 返回 3,但没有解释差异。日志显示正在使用的属性具有正确的值,因此失败完全是个谜。
    • 找到你的地址@deploymentengineering.com。如果您有任何发现,请告诉我,我将不胜感激。
    • 今晚我会试着看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 2014-11-04
    • 2019-01-18
    相关资源
    最近更新 更多