0

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.

正しい解釈かどうかはわかりませんが、レジストリには何も書き込まれていないようです。CMP_odbcreg に加えて実行されるはずだった RegistryValue 要素を含む heat を使用して生成された他のコンポーネントがいくつかあります。Windows レジストリを調べたところ、値が書き込まれていないことが確認されました。

レジストリへの書き込みの例を含む wix マニュアルがあります。それをコピーしてインストーラーに貼り付け、メインのインストール機能に追加してみました。それもうまくいきませんでした

助けてください!

4

2 に答える 2

0

そのため、間違ったレジストリを見ていたことがわかりました。Windows 7 マシンには 32 ビットと 64 ビットのレジストリがあるため、Windows\SysWOW64 にある regedit.exe を確認する必要がありました。

于 2013-08-26T22:41:07.407 に答える