私は InstallShield 2012 Spring を使用しており、「メイン」の基本的な MSI プロジェクトがあります。開発努力の一環として、DIM プロジェクトを使用して複数の開発者の取り組みを調整しています。私たちの環境には、他の DIM プロジェクトを参照するメイン (基本の MSI) プロジェクトがあります。DIM プロジェクトには、(とりわけ) ダイアログが含まれています。
DIM プロジェクト (ここでは一般的な例を取り上げます) では、「次へ」および「戻る」ボタンを提供する新しいダイアログがあります。「次へ」および「戻る」ボタンの動作を構成して、引数が次/前のパネルである「NewDialog」イベントを発行するようにしました。そのため、(それぞれ) 表示し、条件は 1 (常に) です。
たとえば、DIM には MyDIMDialog の動作があります。 ControlName "Back" Event "NewDialog" Argument "APreviousPanelFromMainProject" Condition "1" ControlName "Next" Event "NewDialog" Argument "ReadyToInstall" Condition "1"
上記に基づいて、MyDIMDialog は「インストール準備完了」ビルトインの前の最後のパネルです。
メイン (基本の MSI) プロジェクトでは、DIM モジュールを参照し、それを機能に関連付けました。「APreviousPanelFromMainProject」が、参照された DIM ダイアログ (ダイアログの生成名) の引数を持つ NewDialog イベントを持つように、メイン プロジェクトのダイアログを構成しました。
補足 - 組み込みの「Patch Welcome」のような「トップレベル」の UI シーケンス ダイアログとしてではなく、既存の UI ダイアログで参照されたダイアログをシーケンスしようとしています。
ただし、MSI をビルドして実行し (setup.exe ではなく MSI を使用しています)、[APreviousPanelFromMainProject] パネルに到達すると、[次へ] をクリックしても何も起こりません。
また、'next' の NewDialog イベントが「MyDIMDialog」の引数を持つように APreviousPanelFromMainProject を構成しようとしました (つまり、MyDIMDialog.XXXXXXXX_XXXX の形式の生成された参照ダイアログ名を使用しません)。この場合、インストーラーを実行すると、「エラー 2803。ダイアログ ビューでダイアログ MyDIMDialog のレコードが見つかりませんでした」というエラーが表示されます。
したがって、質問は次のようになります->基本的なMSIプロジェクトでDIM参照ダイアログをどのようにシーケンスしますか?
私の google-foo はこの問題の解決に役立たなかったので、ここの誰かが助けてくれることを願っています.
ありがとう