私は、MSIファイルと前提条件を管理するブートストラップアプリケーションで構成されるインストーラープロジェクトに取り組んでいます。また、いくつかの前提条件の必要性は、ユーザーがインストールすることを選択した機能に依存するため、ブートストラップアプリはUIも提供します。ユーザーが変更インストールを実行するときに、[プログラムの追加と削除](または[プログラムと機能])コントロールパネル(ARP)でMSIの代わりにブートストラップアプリケーションを実行できるようにしたい。インストーラーのUninstallRegistryキーの下にあるModifyPath値を、ブートストラップアプリケーションのパスに変更しようとしましたが、役に立ちませんでした。ARPの[変更]ボタンをクリックしても、MSIが表示されます。
私がやりたいことをする簡単な方法はありますか?それができない場合、MSIが[変更]ボタンを使用してARPから実行されたことを検出し、代わりにブートストラップアプリを実行するようにユーザーに通知するエラーメッセージを表示できるようにする方法はありますか?(つまり、ARPは、ユーザーがMSIを実行し、UIのメンテナンスページを表示せずに変更インストールを指定するために使用するのと同じコマンドライン引数を使用しますか?そうでない場合は、何を探す必要がありますか?)
Edit Myインストーラーは、1つのアプリケーションだけでなく、一連のアプリケーションをインストールします。各アプリケーションは、ユーザーがインストールしないことを選択できます。(これらのアプリケーションのほとんどは、特にインストールされているアプリケーションの1つに依存しているため、これらのアプリケーションをスイートとしてインストールしています。したがって、ユーザーは、個別のインストーラーではなく、1つのインストーラーですべてを処理する方が簡単です。この新しいインストーラーが置き換えられます。)
スイート内のすべてのアプリケーションが同じ前提条件のセットを必要とするわけではないため、ユーザーがスイート内のどのアプリケーションをインストールするかがわかるまで、MSIが前提条件を確認するのは簡単ではありません。さらに、ユーザーがインストールしたいアプリケーションのすべての前提条件のインストーラーを自動的に起動することで、ユーザーが簡単に起動できるようにします。(これが、インストーラーのUIがブートストラップアプリに実装された主な理由です。)
MSIがブートストラップアプリを起動し、ブートストラップアプリが続行している間すぐにサイレントに終了して、最終的にMSIを再起動することは可能ですか?(ブートストラップアプリがMSIを起動すると、MSIに渡されるコマンドライン引数の1つは、ブートストラップアプリがMSIを起動したことを通知するプロパティです。これは、特に、MSIがエラーを表示できるようにするために現在使用されています。コマンドラインでアンインストールまたは修復インストールが指定されていない限り、ブートストラップアプリを実行するようにユーザーに通知するメッセージ。)