1

Wixを使用してレジストリに書き込もうとしています。

「エラーコードは2727です」というエラーが表示されて失敗しています。

このサンプルを実行するには、以下の手順に従います。

c:\testinstall.txtにテキストファイルが必要です

ファイルtestinstall.txtをC:\ Program Files\testinstallにインストールします

キャンドルsample.wxsライトsample.wixobj

sample.msiが作成されます

このエントリをスクリプトに追加すると、失敗します。

必要なのは、キーを作成してレジストリに値を書き込むスクリプトを用意することだけです。

sample.wxsコード

2

  <Registry Id="TestKey" 
     Root="HKLM" 
     Key="SOFTWARE\testCorp" 
     Action="createKeyAndRemoveKeyOnUninstall"> 

 <Registry Id="TestValue" 
           Name="TestValue" 
           Action="write" 
           Value="123" 
           Type="string" /> 
 </Registry> 

  </Component>

   </Directory>
  </Directory>
</Directory>

<Feature Id="Feature" Level="1">
 <ComponentRef Id="component0" />
 <ComponentRef Id="ID0EAAA" />
</Feature>

4

1 に答える 1

2

WiX v2 を使用していますか? 2 つのレジストリ エントリでレジストリ値を作成する代わりに、すべてを 1 行に結合します。

<Registry Id="TestKey" Root="HKLM" Key="SOFTWARE\testCorp" Name="TestValue" Value="123" Type="string" Action="write" />

それは通常、はるかに簡単です。本当に入れ子にしたい場合は、Registry/@Action 属性を親レジストリ キーから外して、実際に MSI に含まれないようにすることをお勧めします。子要素を整理するだけです。

WiX v3 では構文が少し異なることに注意してください。

于 2009-01-15T16:31:45.277 に答える