「msiexec再インストール=すべてのrentallmode = vamus」は古いエントリをクリーニングしていません

StackOverflow https://stackoverflow.com/questions/4710997

質問

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

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

「msiexec /i test.msi renestall = all rentallmode = vamus」を使用してバージョン1からバージョン2にアップグレードした場合、インストールフォルダーでは、バージョン1ファイル「comp1_file2」を見ることができます。

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

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

InstallShield 2008 Premier Editionを使用しています。

役に立ちましたか?

解決

推移的なコンポーネントが行く方法です。 MSはここでそれらを説明しています: http://msdn.microsoft.com/en-us/library/aa372462%28v = vs.85%29.aspx

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

他のヒント

Cosminが示唆したように、修理中にコンポーネントを削除できないが、 新しいバージョンのインストールプロセスを開始する前に、以前のバージョンをアンインストールできます。

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

編集

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top