1

FLEXnet Connect without Software Manager マージ モジュールを含むInstallShield InstallScript MSIプロジェクトがあります。この製品のバージョンは 6.0.32 です。FLEXnet Connect without Software Manager マージ モジュールも含む、バージョン 6.1 用の 2 つ目のインストーラを作成しました。6.0.32 バージョンを含むシステムでメジャー アップグレードを実行すると、MSI ログに次のようなメッセージが表示されます。

Disallowing installation of component: {FF970098-B748-427B-B946-AA8E1A1F82AD} since the same component with higher versioned keyfile exists

コンポーネントは、 FLEXnet Connect フォルダisusweb.dllにあるファイルを参照しています。

このチェックは、6.0.32製品が削除される前に行われるようです。6.0.32インストールは製品の削除に進み、これにより が削除されisusweb.dllます。6.1コンポーネントのバージョン チェックのため、インストール中にisusweb.dllは戻されません。

アップグレードは成功します。ショートカットからアプリケーションを実行しようとすると、コンポーネントが検証されます。がisusweb.dll見つからないため、MSI は修復を試みますが、MSI を見つけることができず、アプリケーションを開くことができません。

マージ モジュールを常に上書きする方法はありますか?

4

4 に答える 4

2

これは、次のバグのように疑わしく聞こえます。

http://support.microsoft.com/kb/905238/en-us

このバグに遭遇しましたが、そのログ メッセージが表示されます。RemoveExistingProducts はインストールの初期段階にあります。そこにある上位バージョンに基づいてファイルをインストールしないことを決定しますが、REP がファイルを削除した後、その決定を再評価しません。その後、ショートカットを使用すると、修復によって復元されます。このバグは、GAC または SxS 内のファイルにのみ適用されるはずなので、少し不可解です。

それを修正する必要があるトランザクション シーケンス (InstallExecute、REP、InstallFinalize) の最後に REP をスケジュールできる場合は、試してみる価値があるかもしれません。移動の他のすべての影響は問題ありません。

于 2014-04-12T17:59:17.857 に答える
2

すでに 2 つの非常に優れた回答が得られていますが、総合してみてください。

本当にバグのあるマージ モジュールのように思えます。Philは、バグを回避するために、InstallExecuteSequence の REP の配置を修正することを提案しています。Chrisは、障害のあるマージ モジュールを独自のセットアップに配置することを提案しています。私は両方に同意し、両方の提案に従うべきだと思います。

  • メイン セットアップからマージ モジュールを削除します。
  • 新しいセットアップを作成し、障害のあるマージ モジュールを追加して、適切な REP シーケンスを確保します。

REP 修正が機能するためには、コンポーネントの参照が 100% 正しくなければなりません (現在も将来も)。これを問題として排除するには、別のセットアップを作成して、バグのあるモジュールを独自の MSI 内に含めることができます。これにより、将来、誤って、または変更された設計によってバグが再アクティブ化されるのを防ぐことができます。後者は決して起こりそうにありません。

Chris が言うように、マージ モジュールは提供されていません。マージされています。私が知る限り、更新されたマージ モジュールが利用できるかもしれませんが、それでもそれを含めるのが賢明です。特に、GAC (グローバル アセンブリ キャッシュ) を扱っている場合。

于 2014-04-13T14:32:31.757 に答える
0

このバグに遭遇したときに適用した別の解決策は、Orca を使用して、マージ モジュールのファイル テーブルから「バージョン」列を更新するように設定することでした。これを最大の 65535.65535.65535.65535 に設定すると、アップグレード時に常にマージ モジュールから DLL がインストールされます。

于 2014-04-14T09:17:13.010 に答える