Installation 在使用UAC的系统中进行维修时,WiX安装条件失败
我在维护模式下的安装条件方面遇到问题,这种情况只发生在带有UAC的系统中。我正在进行注册表搜索,以设置安装条件中使用的两个属性。这在初始安装期间有效,但当我尝试进行修复或修改功能选择时,安装条件失败,并且我收到失败安装条件的消息 这就是我的wix源代码的样子:Installation 在使用UAC的系统中进行维修时,WiX安装条件失败,installation,wix,uac,Installation,Wix,Uac,我在维护模式下的安装条件方面遇到问题,这种情况只发生在带有UAC的系统中。我正在进行注册表搜索,以设置安装条件中使用的两个属性。这在初始安装期间有效,但当我尝试进行修复或修改功能选择时,安装条件失败,并且我收到失败安装条件的消息 这就是我的wix源代码的样子: <Product Id="MyProduct" ... > <Package InstallPrivileges="elevated" ... /> <Condition Message="This
<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中选择“修复”,它将按预期工作。记录修复以查看AppSearch设置的属性。还可以考虑将“安装”或“安装”在您的条件,以便条件只适用于最初的安装。没有比这更烦人的了,因为产品A是先卸载的,所以无法安装产品B 更新:好日志和坏日志中的AppSearch的行为完全相同。问题是您没有将@Secure属性放在属性元素上,因此这些元素没有列在SecureCustomProperties属性中。如果你查看日志,你会发现一行写着“忽略不允许的属性”。欲了解更多信息,请阅读:
克里斯托弗,谢谢你的建议。我可以通过在安装条件中添加“或已安装”来消除这个bug,尽管我仍然想知道当UAC处于活动状态时是什么导致了不同的行为。我比较了无UAC和无UAC的日志,并且在这两个实例中都设置了所有属性,但是,当UAC处于活动状态时,LaunchConditions返回3,并且没有解释差异。日志显示正在使用的属性具有正确的值,因此故障完全是个谜。查找您的地址@deploymentengineering.com。如果你有什么发现,请告诉我,我将不胜感激。今晚我会试着看一看。