在Wix中使用注册表搜索时未读取注册表

时间:2012-02-01 14:36:15

标签: wix wix3.5

我一直在网上搜索此注册表搜索问题的答案。

我有一个更大的wix文件,但是我无法使多个功能正常工作以及它的功能调整因此我创建了一个基本的测试wix文档来理解wix的功能但是无法获得我需要的结果。

代码如下:

<Property Id="BASICTEST" Secure="yes" >
  <RegistrySearch Id="_Regsearch_Basic" Root="HKLM" 
   Key="SOFTWARE\TGSL\BasicInstaller" Name="BASIC1" Type="raw" >
  </RegistrySearch>
</Property>

<Property Id="BASICTEST1" Secure="yes" >
  <RegistrySearch Id="_Regsearch_Test" Root="HKLM" 
   Key="SOFTWARE\TGSL\BasicInstaller" Name="TEST1"  Type="raw" >
  </RegistrySearch>
</Property>


<Feature Id="BasicFeature" Title="BasicFeat" Level="0">
  <Condition Level="1">NOT (BASICTEST="0")</Condition>
  <ComponentRef Id="BasicTest"/>
    </Feature>

<Feature Id="TestFeature" Title="TestFeat" Level="0" >
  <Condition Level="1">NOT (BASICTEST1="0") </Condition>
  <ComponentRef Id="BasicTest1"/>
</Feature>

我已经设置了四个注册表项,所有值都是1(BASIC1 = 1和TEST1 = 1)来测试它使用的是哪个注册表(SOFTWARE \ TGSL \ BasicInstaller中的2个用于64位,或者2个用于SOFTWARE \ TGSL \ BasicInstaller对于32位)

我知道默认为32位,除非另有说明,但仍然没有。我正在使用进程监视器来测试我的.msi文件是否正在读取注册表...这不是。

我在安装.msi时创建了一个日志文件,并在阅读注册表时收到错误代码:

AppSearch:Property:BARRIETEST,签名:_Regsearch_BarrieTest1

注意:1:2262 2:签名3:-2147287038

注意:1:1402 2:HKEY_LOCAL_MACHINE32 \ SOFTWARE \ TGSL \ BasicInstaller 3:2

错误代码没有找到文件,但看起来它正在查找不存在的目录,当我将其更改为win64 =“yes”时,它会在HKEY_LOCAL_MACHINE之后取消32。

我已经尝试在wix 2.0中构建这个测试脚本并且它在注册表中搜索很好并且它将属性更改为注册表项“1”的值,所以我陷入困境中我做错了什么?

wix 2.0和wix 3.5之间的注册表搜索参数之间是否存在差异?

任何人都可以建议可能的解决方法或我如何使这些功能正常工作吗?

请帮助...提前谢谢

1 个答案:

答案 0 :(得分:3)

对于关闭,如问题评论中所示,这是一个权限问题,其中运行安装程序安装程序的用户没有足够的权限来访问HKEY_LOCAL_MACHINE。

相关问题