0

インストーラー「test.msi」を作成しました。バージョン-1です。test.msi には 2 つのコンポーネント "comp1"、"comp2" が含まれます。 comp1 には 2 つのファイル "comp1_file1"、"comp1_file2" が含まれます。

test.msi のバージョン 2 では、 --> 新しいコンポーネントに「comp3」が追加されました。1 つのファイル「comp3_file1」が含まれています --> 「comp1」コンポーネントが更新されます。「comp1_file2」ファイルが削除され、新しいファイル「comp1_file3」が追加されました。現在、2 つのファイル (comp1_file1、comp1_file3) が含まれています。

「msiexec /i test.msi REINSTALL=ALL REINSTALLMODE=vamus」を使用して test.msi をバージョン 1 からバージョン 2 にアップグレードすると、インストール フォルダーにバージョン 1 ファイル「comp1_file2」が表示されます。

「msiexec /i test.msi REINSTALL=ALL REINSTALLMODE=vamus」を使用してバージョン 2 からバージョン 1 にダウングレードすると、インストール フォルダーにバージョン 2 関連のファイル (comp3_file1、comp1_file3) が存在します。

再インストール時に古いエントリ (コンポーネント/ファイル) を削除するには?

私は installshield 2008 プレミア エディションを使用しています。

4

2 に答える 2

0

推移的なコンポーネントが進むべき道です。MSはここでそれらについて説明しています:http://msdn.microsoft.com/en-us/library/aa372462%28v=vs.85%29.aspx

クリスが言ったことをフォローアップするために、reinstallmodeで遊ぶことはいくつかの厄介なことをすることができます。これは、共有コンポーネントを含める場合に特に当てはまります。他のアプリケーションが依存しているコンポーネントをバックレベル化することができ、使用中の共有コンポーネント内のファイルに基づいて、一見無関係に見えるアプリケーションを停止するように求められることがあります。可能であれば避けるのは本当に良いことです。

于 2011-01-17T16:25:17.303 に答える
0

Cosmin が提案したように、修復中にコンポーネントを削除することはできませんが、新しいバージョンのインストール プロセスを開始する前に、以前のバージョンをアンインストールできます。

InstallShiled 2008 を使用する 1 つの方法は、これを行うメジャー アップグレードを作成することです。 ビデオチュートリアル

編集

クリストファーが言ったように: マイナー アップグレード/修理でコンポーネントを削除する方法があります。以下のコメント。

于 2011-01-17T08:48:35.670 に答える