2017-04-07 6 views
0

カスタムダイアログを作成して3つのアプリケーションをインストールしようとしています。カスタムダイアログではチェックボックスとオンクリッキングチェックボックスがあり、ファイル転送を行うアプリケーション、どのチェックボックスがチェックされているかに基づいてプリレキストをインストールします。私はこれを3つのアプリケーション全てに起こしたいと思います。それを行う方法を提案してください。Instal Shieldを使用してカスタムダイアログボックスでアプリケーションをインストールする方法(ファイル転送、プリレクシス)

答えて

0

あなたが基本のMSIのためのカスタムダイアログの話をしている、私は次のことを示唆していると仮定:

  1. 問題の各アプリケーションが別々の機能の一部であることを確認してください。元のダイアログセットを使用すると、機能名によってユーザーが選択できる可能性があります。また、非表示にすることもできます。これらの機能は、App1App2App3という意味のある名前を持つ必要があります。
  2. 3つのチェックボックスがINSTALL_APP_1,INSTALL_APP_2,INSTALL_APP_3などの異なるプロパティに関連付けられていることを確認します。ここではパブリックプロパティを習慣から見せていますが、同じシーケンス(同じダイアログボックスでも)で使用されるため、プライベートプロパティを使用することはできます。 1、2、3より意味のある接尾辞を使用してください。
  3. 説明したダイアログボックスの[次へ]または[インストール]ボタンに複数のcontrol eventsを追加します。
    • は、チェックボックスがINSTALL_APP_1
    • のような状態で、すなわち(チェックされたときに実行するように条件付け、機能名(例えばApp1の)の引数で、 AddLocalコントロールイベントを追加します。それぞれについて、あなたがこの方法を制御したい特色チェックボックスがチェックされていないとき
    • はすなわちNOT INSTALL_APP_1のような条件で(実行するために条件付け機能名の引数(例えばApp1の)、で、Removeコントロールイベントを追加します。
  1. メンテナンス時にこのダイアログボックスを表示する場合は、チェックボックスのプロパティ(INSTALL_APP_1など)の値も初期化して、このダイアログボックスを単に過ぎることはできませんインストール状態を変更しないでください。メンテナンスダイアログを表示する直前にスケジュールされたSetPropertyカスタムアクションでfeature-state condition syntax!App1など)を使用することができます(たとえば、INSTALL_APP_1プロパティを値1に設定し、条件!App1=3)。

  2. これらの機能が機能選択コントロールに表示されている場合は、それに応じてプロパティを必ず更新してください。フィーチャーステートとフィーチャーアクションの構文の組み合わせを使用して、そのダイアログの[次へ]ボタンをクリックします。機能が現在インストールされていて、削除されていない、またはインストールされている場合、プロパティは1である必要があります。それ以外の場合は空({})に設定する必要があります。

これは多くの手順ですが、機能がユーザーの期待どおりに機能するようにするのに役立ちます。もし彼が彼らの状態を変えることを何もしなければ、彼らは以前に設定されたままにしておくべきです。機能選択コントロールとチェックボックスの両方に表示されている場合、それらは同期して動作する必要があります。

前提条件として、前提条件のInstallShieldの概念を意味する場合、これはassociate prerequisites with the featuresとすることができます。MSI内の他のコンポーネントを意味するだけであれば、ステップ1で定義された機能と完全によく機能します。

関連する問題