4

[次へ] ボタンをクリックしたときにカスタム アクション dll を呼び出すにはどうすればよいですか? 現在、私が行っていることは以下のとおりです。

<CustomAction Id="TestingAction" BinaryKey="BIN_CustomAction" DllEntry="TestValue" Execute="deferred" Return="check" />
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="&amp;Next"></Control>
<Custom Action="TestingAction" After="Next"></Custom> 

次へのボタンを指定After ="Next"すると、アプリケーションのビルド後にエラーが発生します。

「Product:*」セクションのシンボル「WixAction:InstallUISequence/Next」への未解決の参照。

解決方法は問題であり、[次へ] ボタンをクリックした後に CustomAction を呼び出す方法を教えてください。

4

1 に答える 1

9

あなたがしようとしているのは、延期されたカスタム アクションを特定のシーケンスにスケジュールし、明らかに存在しない Next というカスタム アクションの後に実行することです。ボタンのクリック時にカスタム アクションを呼び出すには、まったく別の方法を使用する必要があります。

以下の手順に従います。

  • カスタム アクションを作成します。即時 ( execute='immediate') である必要があり、ターゲット システムの状態を決して変更してはなりません。
  • 要素Controlの作成 - イベントをトリガーするボタン
  • 最後に、イベントをパブリッシュするPublishの子として要素を作成します。ControlDoAction

ボタンのクリックで EULA を印刷する方法の WiX ソースからの完全なサンプルを次に示します。

<Control Id="Print" Type="PushButton" X="88" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)">
  <Publish Event="DoAction" Value="WixUIPrintEula">1</Publish>
</Control>

明らかに、Control要素は要素の子でなければなりませんDialog。カスタム アクションは次のように定義されます。

<CustomAction Id="WixUIPrintEula" BinaryKey="WixUIWixca" DllEntry="PrintEula" Return="ignore" Execute="immediate" />

お役に立てれば。

于 2013-06-21T09:48:25.750 に答える