2016-11-30 14 views
1

いくつかの設定オプションに基づいて他のインストーラを実行するInno Setupを使ってインストーラをビルドしようとしています。わかりやすくするために、5つの異なる設定でセットアップできる20のインストーラがあります。それぞれの設定にはいくつかの必須インストーラとオプションのインストーラがあります。構成Aには、インストーラー1,2,5,6が必要で、11,13,14のオプションが必要な場合があります。構成Bには、12,19、および20のオプション1,2,3,9、およびオプションが必要な場合があります。 。Innoセットアップコンポーネントを隠す

インストーラごとにコンポーネントがあります。理想的には、私は構成にタイプを使用するのが好きでしたが、他のコンポーネントをオプションにしている間に、どのコンポーネントを必要とするかを理解できませんでした(これが可能ならば教えてください)。だから、現在私は "カスタム"タイプしか持っておらず、設定を指定できるカスタムウィザードページを使用します。選択に基づいて、私はコードを使用して、オプションのコンポーネントを選択できるようにしながら、必要なコンポーネントをチェックして無効にすることができます。

一般的にはうまくいきますが、選択した設定に該当するコンポーネントのみを表示したいと考えていました。したがって、上記の例を使用すると、構成Aの場合、コンポーネントページには1,2,5,6が表示され、無効になり、11,13、および14には表示されずに表示されます。すべてのコンポーネントを定義したままにすることはできますが、適用されないコンポーネントを非表示にすることはできますか?あるいは、複数のコンポーネントページを定義することもできますが、その構成のページのみを表示しますか?

私はthis解決策をオンラインで見つけましたが、ユーザーがコンポーネントを削除する可能性がありますが、再追加しないという考えがバックボタンを押す可能性があるため、良いオプションのように見えません。

答えて

0

いいえ、コンポーネントリスト(ComponentsList)は、インストーラの起動時に一度だけ入力されます。実行時に変更することはできません。

このような複雑な設定では、組み込みコンポーネントの機能をあきらめ、独自のカスタム "コンポーネント"ページを作成することをお勧めします。あるいは、組み込みの「コンポーネント」ページを保持し、標準のコンポーネントリストを非表示にして独自のビルドページを作成することもできます。

同様のレイアウトを作成しますが、インストールの「タイプ」が変更された場合は、「コンポーネント」リストを再作成してください。

Check parameterを使用して、FilesRegistryなどのセクションエントリをカスタムコンポーネントにバインドできます。または、表示されているカスタムコンポーネントリストの選択に基づいて、実際の非表示のコンポーネントリストを更新することもできます。

+0

返信いただきありがとうございます。明確にするために、基本的に標準コンポーネントを定義するのではなく、各構成のコンポーネントページをエミュレートするカスタムウィザードページを作成することをお勧めします。その後、File/RunセクションのCheckパラメータを使用して、実際に実行するインストーラを決定します。私の理解は正しいのですか? – user7134019

+0

私の答えはやや広かった。しかし、はい、可能な実装です。 –

関連する問題