我在维护模式下遇到安装条件问题,这种情况只发生在使用UAC的系统中。我正在执行注册表搜索以设置安装条件中使用的一些属性。这在初始安装过程中起作用,但是当我尝试修复或修改特征选择时,安装条件失败,并且我收到失败安装条件的消息。在UAC系统的维修过程中,WiX安装条件失败
这是我的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中选择“修复”,它会按预期工作。
克里斯托弗,感谢您的建议。我能够通过在安装条件中添加“OR Installed”来摆脱该错误,但我仍然想知道当UAC处于活动状态时导致不同行为的原因。我比较无-UAC VS UAC的日志,以及所有性质在这两种情况下被设置,然而,当UAC是活性LaunchConditions没有解释为差异返回3。日志显示正在使用的属性具有正确的值,所以失败是一个完全谜。 – 2010-11-13 00:46:21
如果你想将日志发送给我,我可以看它了。 – 2010-11-13 01:18:44
追查你的地址@deploymentengineering.com。如果您发现任何问题,请告诉我,我将不胜感激。 – 2010-11-16 16:34:38