我正在使用wix创建一个安装程序,我在写入注册表时遇到问题。这是我的RegistryValue元素:
<Component Id="CMP_odbcreg" Guid="{115B002E-F4C9-48CD-8E1C-E8803B16AE69}">
<RegistryValue Id="rg_psql"
Root="HKLM"
Key="SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers"
Name="PostgreSQL"
Value="Installed"
Type="string"
KeyPath="yes"
Action="write"/>
</Component>
没有任何内容写入注册表。此组件是我的主要安装功能,因此它应始终写入注册表。我查看了我的日志文件,发现了这个:
MSI (s) (60:1C) [00:00:07:080]: Doing action: WriteRegistryValues
MSI (s) (60:1C) [00:00:07:080]: Note: 1: 2205 2: 3: ActionText
Action 0:00:07: WriteRegistryValues. Writing system registry values
Action start 0:00:07: WriteRegistryValues.
WriteRegistryValues: Key: Writing system registry values, Name: , Value:
Action ended 0:00:07: WriteRegistryValues. Return value 1.
我不知道我是否正在解释这一权利,但似乎根本没有任何内容写入注册表。我有几个使用heat生成的其他组件,这些组件包含除CMP_odbcreg之外应该执行的RegistryValue元素。我检查了我的Windows注册表并确认没有写入任何值。
我有一个wix手册,其中包含写入注册表的示例。我尝试将其复制并粘贴到我的安装程序中并将其添加到主安装功能中。这不起作用
请帮助!
答案 0 :(得分:0)
事实证明我正在查看错误的注册表。 Windows 7计算机有一个32位和64位注册表,所以我应该一直在查看Windows \ SysWOW64中的regedit.exe。
答案 1 :(得分:0)
由于现在64位系统普及,我建议在Registry Redirection上做一个小讲座,我相信你会发现这些信息对未来有用。这适用于访问注册表的任何应用程序,而不仅仅是安装程序。
在您的情况下,如果您需要禁用安装程序的重定向,可以查看this SO thread。