2013-08-26 39 views
0

我使用wix創建了一個安裝程序,並且在寫入註冊表時遇到問題。這是我的RegistryValue元素:Wix v3.7 - 寫入註冊表值時出錯

<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之外還應該執行。我檢查了我的Windows註冊表並確認沒有值正在寫入。

我有一個wix手冊,其中包含寫入註冊表的示例。我嘗試複製並粘貼到我的安裝程序中,並將其添加到主要安裝功能中。這也沒有工作要麼

請幫助!

回答

0

所以事實證明,我在看錯誤的註冊表。 Windows 7機器有32位和64位註冊表,所以我應該一直在Windows \ SysWOW64中找到regedit.exe。

0

由於如今64位系統廣泛傳播,我建議在Registry Redirection上進行一次小型講座,我相信您會發現對未來有用的信息。這適用於訪問註冊表的任何應用程序,而不僅限於安裝程序。

在你的情況下,如果你需要禁用安裝程序的重定向,你可以看看this SO thread