2

Wix 3.6 RC を使用してインストーラーを作成しました。ダイアログ UI にチェックボックスがあり、最初は無効になっており、チェックされていません。その横に「確認」ボタンがあります。このボタンを押すと、カスタム アクションが (即時に) 実行され、チェック ボックスを有効にするかどうかを決定するパラメーターの値を設定します。コードは次のとおりです。

<Control Id="VirtualCheckBox"
                 Type="CheckBox"
                 CheckBoxValue="1"
                 X="35" Y="100"
                 Width="160" Height="20"
                 Disabled="yes"
                 Text="!(loc.VirtualizationDlg_ChkBox)" Property="ENABLEVIRTUALIZATION">
  <Condition Action="enable"><![CDATA[INTEGRATED = "1"]]></Condition>
  <Condition Action="disable"><![CDATA[INTEGRATED = "0"]]></Condition>
</Control>

このチェックボックスの値をレジストリに保存しています:

<Component Id="Virtualization_RegistryEntries" Guid="GUID-IS-HERE">
    <Condition>Not Installed</Condition>
    <RegistryKey Root="HKCU"
                 Key="Software\!(loc.CompanyName)\!(loc.ProductName)">
      <RegistryValue Type="string" Name="Virtualization" Value="[ENABLEVIRTUALIZATION]" KeyPath="yes"/>
    </RegistryKey>
  </Component>

これを行う必要があります:
1) ユーザーが [確認] ボタンをクリックしない場合: レジストリは値 0 を取得します
2) ボタンをクリックすると (CA は false を取得し、チェックボックスは無効のままになります): レジストリは値 0 を取得します
3) ボタンとチェックボックスをクリックした場合有効にするがチェックボックスをチェックしない: レジストリは値 0 を取得します
4) ボタンをクリックしてチェックボックスを有効にし、チェックボックスをチェックすると: レジストリは値 1 を取得します

私は1つの条件でのみ機能していません。彼がこれをチェックすると、レジストリは1になりますが、無効になっているかチェックされていないままで、レジストリは何も取得しません。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

-1

変数にデフォルト値を与えてみましたか?

<Property Id="ENABLEVIRTUALIZATION" Value="0" />

それと同じくらい簡単なことでうまくいくはずです!

于 2012-06-15T07:01:06.467 に答える