1

私は、1つの修正を除いて非常に基本的なVisual Studioセットアッププロジェクトを持っています。私は、ユーザーの選択に基づいてインストールしたい2つの異なるライブラリを持っています。私はチェックボックスの画面と条件をファイルに追加しました。コンポーネントまたは両方のコンポーネントをインストールできます。これはすべて正常に動作します。MSIで修復オプションをカスタマイズする

私の要件のために今。ユーザーがMSIをインストールし、1つのコンポーネントのみを選択したとします。今度は、同じMSIから2番目のコンポーネントをインストールする必要があります。 MSIをもう一度実行すると、修理または削除するオプションが表示されます。修復は、元々インストールされたコンポーネントのみを修復します。チェックボックスの画面をもう一度表示して、他のコンポーネントをインストールするオプションを与える方法はありますか?

この機能をVSセットアッププロジェクトで使用できない場合は、他に何かありますか?おそらくWiX?

答えて

1

私はVSセットアッププロジェクトがこれをサポートしているとは思わない。 InstallShieldのような他のツールから作成されたWixやMSIはこれをサポートすることができます。これを処理する通常の方法は、別々のフィーチャを作成し、各フィーチャに異なるコンポーネントを割り当てることです。 MSIがWiXまたは他のツールを使用して構築されている場合、追加/削除から、[修復]、[修正]、または[アンインストール]のオプションを得ることができる[変更]ボタン/オプションがあります。変更すると、再インストールせずに機能の選択を変更できます。

+0

それは私が考えたものです。私は、Visual Studioセットアッププロジェクトの機能が非常に限られていることを知っていました。 – Web

1

ORCAやSuperORCAなどの無料のMSIエディタを使用する必要があります。マイクロソフトは、サービスパックにORCAツールを提供しています。彼らが続行しているかどうかは分かりません。 SuperORCAツールはhttp://www.pantaray.com/msi_super_orca.htmlにあります。今私が似たような仕事をしていたら、私のアプローチだった。私はSuperOrcaを使用してMSIファイルを開きました。 RadioButtonのテーブルの下> - - SuperOrcaで - 修理で 1]/MSIダイアログ画面を削除し、「変更」のためのもう一つのラジオボタンを追加>変更のエントリがRadioButtonを追加

2]から「再インストール」に戻るボタンを押しのテキストの名前を変更します元の「戻る」 - >スーパーオーカ - >コントロールテーブル - >名前を変更するテキストプロパティを変更して再インストールに戻る

3]修復/削除ラジオボタンを有効にすると終了ボタンが有効になり、再インストールボタンは無効になります。変更するラジオボタンを有効にする再インストールボタンを有効にして終了ボタンを無効にする - SuperOrca - >コントロールコンディションテーブル - >画面の修復/削除のための各コミビリオンの「再インストール」と「終了」ボタンを有効/無効にするエントリを追加するケースのダイアログフォーム名は "MaintananceForm")

4]今すぐSuperOrcaツールのControlEventテーブルからBackButtonのコントロール名を調べてください。私の場合は「PreviousButton」です。そのイベントの引数&をテーブルから変更します。また、これらのプロパティの値は、インストールオプションを表示するようにユーザーをリダイレクトするMSIファイルのようこそ画面の[次へ]ボタンのプロパティと同じにする必要があります。

注:これは問題なく機能しています。しかし、インストールオプションを再度選択して[次へ]をクリックすると、何とか選択したオプションをインストールする必要はありません。代わりにMSIを修復します。私はWindows \ Installerフォルダからエントリを削除しようとしましたので、MSIはキャッシュされたバージョンをインストールしませんが、運はありません。誰かがMSIセットアップウィザードでMSIを強制的に再インストールする方法について回答している場合は、教えてください。

関連する問題