Visual Studio のセットアップおよび展開プロジェクトにオプションのコンポーネントを追加するにはどうすればよいですか?
-
22-08-2019 - |
質問
Visual Studio を使用して、非常に基本的な「セットアップとデプロイ」プロジェクトを作成しようとしています。私が欲しいのは、どちらかを選択できることです コンポーネント インストールします。各コンポーネントが単一のクラス ライブラリの主出力で構成されているとします (つまり、各コンポーネントは実際には単一のモジュールまたはコンパイルされたアセンブリです)。
利用可能なダイアログの標準セットではそのようなオプションを見たことがありません。しかし、少しの努力で何とか作成できることがわかりました。 カスタムダイアログ.
セットアップおよび展開プロジェクトの一部として利用可能なコンポーネントをプログラムで検出するにはどうすればよいですか? (すなわち、インストールにコンポーネントを追加または削除してもプロジェクトが機能するようにしたいです)
使用可能なコンポーネントのリストを表示するカスタム ダイアログを拡張または作成するにはどうすればよいですか?
エンドユーザーがインストールすることを選択したコンポーネントを検出するにはどうすればよいですか?
私は、.msi ファイルを操作するツールである Orca や、InstallShield などの本格的なインストーラー アプリケーションについてはある程度知っていますが、生の Visual Studio とその他の利用可能なオープンソース ツールのみを使用してこれを作成したいと考えています。
ご協力いただきありがとうございます。
解決
VDP (Visual Studio 導入プロジェクト) は、この種のものには向いていません (以下を読んでください)代わりに Wix を使用してください):
- (実行時にこれが必要だと思います) MsiQueryComponentState ただし、そのためにはコンポーネントの GUID を渡す必要があります VDP ではこれを制御できません。
- これは、VDP 以外のすべての製品ですぐに使用できるようになります。
- (セットアップ時にこれが必要だと思います...) 条件に基づいてカスタムアクションを実行するには、条件を使用できます。 コンポーネントのインストール状態, 、VDP では、コンポーネントの条件を実行するために必要なコンポーネント ID (コンポーネント GUID と混同しないでください) を制御できません。
所属していません StackOverflow