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 マニュアルがあります。それをコピーしてインストーラーに貼り付け、メインのインストール機能に追加してみました。それもうまくいきませんでした
助けてください!