9

msi のアップグレード方法に関する多くの情報を見つけることができます。たとえば、マイナー アップグレード、スモール アップグレード、メジャー アップグレード、およびそれらの使用例と制限に関する情報です。ただし、次のようなマージ モジュールのアップグレード動作に関する情報は見つかりません。

  1. msm には、マイナー、スモール、またはメジャー アップグレードを指定する方法がないようです。それで、それはどのように振る舞うのですか?最初に古いバージョンをアンインストールしますか、それとも変更されたファイルのみを更新しますか?
  2. msi のようにどのバージョンからアップグレードできるかを指定する方法はありますか?
  3. 新しいバージョンのコンポーネントを追加/削除/名前変更できますか?
  4. この msm の新しいバージョンが既にインストールされていて、コンテナー msi がインストールを決定した場合、この古いバージョンの msm で上書きされますか?
4

2 に答える 2

7

マージモジュールが参加できるアップグレードシナリオは2つあります。1つはインストーラーがアップグレードするときで、.msmファイルをアップグレードします。これは、Visual Studio Service Packのように、使用できる更新されたマージモジュールを提供する場合に発生します。.msmファイルにはファイルバージョンがないため(マージモジュールバージョンがある場合でも)、これは問題になる可能性があります。そのため、ファイルバージョン管理ルールは親切に適用されません。あなたはおそらくこの事件について質問していないでしょう。

もう1つのシナリオは、マージモジュールがアップグレードするインストーラーにマージされた場合です。それはもはやマージモジュールではありませんが、代わりにそのファイルと他のレコードは消費するインストーラーの一部です。この場合、.msiそれがマージされた場所がアップグレード手順を制御します。2つは相互作用し、最初の3つの質問に対する回答を通知します。マージモジュールにマイナーアップグレードルールに従わない変更がある場合、消費側のインストーラーはマイナーアップグレードを使用できず、メジャーアップグレードに頼る必要があります。同様に、消費側のインストーラーでマイナーアップグレードを使用(または許可)する場合は、コンポーネントに注意する必要があります。これは、.msiマージモジュール内に新しい機能を追加することはできないためです。ファイルのバージョン管理ルールは、すべてのWindowsインストーラーのインストールと同じように適用されます。したがって、4番目の質問に対する回答は、モジュールの内容全体に対するグループの回答ではなく、ファイルごと、コンポーネントごとに決定されます。

于 2009-08-19T14:48:24.390 に答える
1

質問: 回答の 2 番目のシナリオで説明されているように、マージ モジュールをバージョン管理する方法を知る必要があると思います。

状況:

すべて同じマージ モジュールをインストールする多数の製品があります。

ある製品がマージ モジュールの新しいバージョンをインストールする場合、別の製品の古いバージョンが最新のマージ モジュールを上書きすることは望ましくありません。

これが可能かどうか、また可能であればどのように説明できますか?

于 2009-12-10T22:31:26.520 に答える