私は現在取り組んでいるプロジェクトのためにC#のインストールと設定アプリケーションを開発しています。すべてを内部的に整理する最良の方法はなんですか?インストーラウィザードの構造
要件:
- 展開のための単一の実行、それにバンドルされていない他のファイル。
- 最後に生成されたXML設定ファイルに寄与する、各パネルでカスタム設定ステップをサポートしなければなりません。
- インストーラフロー内の特定の選択に基づいて、特定の手順をスキップすることができます。
- 私のライブラリの1つのクラスからフィードバックされた情報に基づいて動的な設定画面をサポートしなければなりません。パネル・コントロールの束と
- 大きなフォーム、ウィザードの各代表する一つの「画面」:
は、ここに私のプロトタイプの説明です。それぞれの名前は適切です。
- 私が定義した基底型から派生した各 "スクリーン"のクラス。特定のイベントが発生した場合、具体的な方法(例:
Enter
、Back
、Forward
)を呼び出します。 - 状態は
Dictionary<string,object>
として保存され、各画面に渡されます。最後の画面(実際の "インストール中"画面)は、これから設定を読み込み、XMLファイルにダンプします。 - 各画面のコードは「次へ」および「前へ」ボタンの操作を担当しているため、現在の画面の設定に基づいてどこにジャンプするかを制御できます。
- 私のライブラリにはいくつかのモジュールが保存されており、必要な追加の設定手順についての情報が提供されています。私は反映と自動化されたUI生成を通じてこれを実装しています。
- アセットは、実行可能ファイルのリソースに格納されます。
ロジックが完全にカスタムであり、自分のクラスライブラリの1つを呼び出しているため、InstallShieldなどの汎用インストーラパッケージを使用したくありません。私が知りたいのは、私はこれを本当に控え目な方法で設定していますか?ウィザードスタイルのアプリケーションには、より簡単で標準的な方法がありますか?
InstallShield、WiX、NSIS - これらのインストーラはすべてカスタムライブラリを呼び出すことができます。また、カスタムのインストール手順やあなたが持つ可能性のある狂ったロジックも処理できます。 –