1

1つの変更を除いて非常に基本的なVisualStudioセットアッププロジェクトがあります。ユーザーの選択に基づいてインストールしたい2つの異なるライブラリがあります。チェックボックス画面と条件をファイルに追加しました。コンポーネントのいずれかまたは両方をインストールできます。これはすべて正常に機能します。

今私の要件のために。ユーザーがMSIをインストールし、1つのコンポーネントのみを選択したとします。ここで、同じMSIから2番目のコンポーネントをインストールする必要があります。彼らがMSIを再度実行した場合、修復または削除するオプションが表示されます。修復では、最初にインストールされたコンポーネントのみが修正されます。チェックボックス画面を再度表示して、他のコンポーネントをインストールするオプションを提供するにはどうすればよいですか?

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

4

2 に答える 2

1

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

于 2009-08-19T21:31:09.667 に答える
1

ORCAやSuperORCAなどの無料のMSIエディターを使用する必要があります。Microsoftは、サービスパックでORCAツールを提供するために使用しています。彼らがそう続けているかどうかわからない。SuperORCAツールはhttp://www.pantaray.com/msi_super_orca.htmlにあります。今、私が次のことを達成するために同様のタスクを持っていたとき、それは私のアプローチでした。SuperOrcaを使用してMSIファイルを開きました。1] MSIダイアログ画面の修復/削除で、「変更」のラジオボタンをもう1つ追加します-SuperOrca->RadioButtonテーブルの下->「Modify」ラジオボタンのエントリを追加します

2]BackButtonのテキストの名前を元の「戻る」から「再インストール」に変更->SuperOrca内->コントロールテーブルの下->Textプロパティを変更して「戻る」から「再インストール」に名前を変更

3] [修復/削除]ラジオボタンを選択したら、[完了]ボタンを有効にし、[再インストール]ボタンを無効にします。[変更]ラジオボタンを選択すると、[再インストール]ボタンを有効にして[完了]ボタンを無効にします-SuperOrcaの場合->ControlConditionテーブルの下->修復/削除画面の各組み合わせの[再インストール]ボタンと[完了]ボタンの有効化/無効化のエントリを追加します(ケースダイアログフォーム名は「MaintananceForm」)

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

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

于 2012-01-18T18:19:01.093 に答える