問題タブ [merge-module]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
668 参照

installation - 高度なインストーラーを使用してモジュールをマージする

Advanced Installer を使用して 2 つの .msi ファイルを作成しました。次に、Advanced Installer でマージ モジュール プロジェクトを作成し、これら 2 つの msi ファイルを追加しました。次に、Merge Module をメインのインストーラーに追加しました。

次の質問があります。

  1. メイン インストーラーを実行すると、マージ モジュールも実行されますが、マージ モジュールに含まれる msi ファイルは実行されず、インストール フォルダーにコピーされるだけです。マージ モジュールの実行時にマージ モジュール内の両方の msi ファイルを実行するにはどうすればよいですか?

  2. Advanced Installer Merge Module Option を使用できず、グレー表示されています (強調表示されていません)。その理由は何ですか?

0 投票する
4 に答える
1140 参照

installation - メジャー アップグレード中にマージ モジュールのインストールが失敗する

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

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

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

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

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

0 投票する
0 に答える
471 参照

sql - インデックスを削除する必要がありますが、新しい主キーを追加できません

私には理解できない奇妙な状況があります。マージ モジュールで SQL ブロックを実行して、Oracle スキーマを更新しています。複数のテーブルの主キーを変更しようとしているので、次の手順を実行しています。

FK 制約の削除、PK の削除、PK インデックスの削除 (PK の削除後もインデックスが存続する場合)、新しい PK の追加、FK の追加

これが私の問題です。インデックスが削除される部分に到達するまでは、すべて順調です。プライマリが削除され、(私の知る限りでは) そのキーに基づいて Oracle が作成したインデックスも即座に削除されます。インデックスの永続化に問題があったため、確実に削除されるように DROP INDEX スクリプトを追加しましたが、次のようになります。


コマンドは正常に実行されました



ORA-01418: 指定されたインデックスは存在しません (これはまさに私が期待したものです)



ORA-00955: 名前は既存のオブジェクトですでに使用されています(オブジェクトはいずれの場合も古い索引です)


もちろん、FK は新しいキーに基づいているため、FK がリンクすることはありません。これを TOAD で実行すると、SQL は機能しますが、マージ モジュールを使用しない理由がわかりません。誰でも助けることができますか?

0 投票する
3 に答える
4672 参照

wix - MSI 参照カウント: 2 つの製品が同じ MSI をインストールします

製品 A と B がそれぞれ複数の MSI をインストールし、一部の MSI が同じ場合、A または B のいずれかをアンインストールすると、もう一方に影響しますか? 設置場所は重要ですか?

また、一般的な MSI C のバージョンが製品 B で高く、B がインストール時に C をアップグレードするとどうなりますか? ここで、B をアンインストールすると、製品 A を破壊する一般的な MSI C が削除されます。Permanent フラグを使用せずに、これをどのように適切に処理しますか?

0 投票する
1 に答える
2098 参照

wix - Wix でリターゲット可能なマージ モジュールを作成して使用する方法

最小限の再ターゲット可能なマージ モジュールを作成して使用したいと考えています。3つのファイルが含まれている必要があります

次のマージ モジュールがあります。

私はこのように使用します:

次のようにつなぎ合わせます。

これは期待どおりに機能しません。のフォルダProduct.wxsは無視され、ファイルは の直下に置かれC:\ます。リターゲット可能なマージ モジュールを使用する必要があることを読みました。次に、マージ モジュールは構成設定を使用して、そのファイルを配置する場所を決定する必要があります。この構成は、マージ モジュールを使用する製品で設定する必要があります。これを行う方法の例を見つけることができませんでした。誰かが私を正しい方向に向けることができますか?

0 投票する
1 に答える
410 参照

wix - WiX で新しいバージョンを削除した後、以前のバージョンのファイルの関連付けを保持する方法は?

バージョン 1.0.0 と V2.0.0 の製品 A があり、それぞれが WiX ファイルの関連付けを使用してファイル タイプ xyz (実行可能な product.exe) に関連付けられています。製品 A V1.0.0 をインストールすると、ファイル拡張子 xyz が関連付けられます。次に、製品 A V2.0.0 をインストールします。これで、ファイル xyz が製品 A V2.0.0 に関連付けられます。最初に 2.0.0 がインストールされ、その後に V1.0.0 がインストールされている場合、ファイルの関連付けは期待どおりにオーバーライドされます。

V2.0.0 をアンインストールすると、2.0.0 のファイルの関連付けが削除され、V1.0.0 の関連付けが復元されず、その逆も同様です。

WiX を使用して以前のバージョンのファイルの関連付けを自動的に復元するにはどうすればよいですか? 以下の私の WiX コードを見て、可能な修正を提案してください。

製品 A V1.0.0 WiX 3.8 コード:

製品 A V2.0.0 WiX 3.8 コード:

唯一の違いは、ProgId の Id wrt ファイルの関連付けにあります。

0 投票する
4 に答える
1377 参照

wix - モジュール ファイルを別の場所にマージする

マージ モジュール ファイルを 2 つの異なる場所に解析したいと考えています。出来ますか?

2 番目のファイルを他のファイルとは別のフォルダーにコピーする必要があります。

0 投票する
2 に答える
109 参照

windows-installer - VC ランタイムを MSI にマージする

アプリケーションのインストーラー パッケージを作成しており、VC ランタイムのMSMをそれにマージしたいと考えています。

を使用するOrcaと、これは競合することなく正常に機能します。

を使用msimergすると、エラー コード1629 (ERROR_DATATYPE_MISMATCH)が表示されますが、それ以上の情報はなく、_MergeErrorsテーブルも生成されません。

エラーが具体的にどこで発生したかを知る方法はありますか?

0 投票する
1 に答える
703 参照

wix - Msi セキュア プロパティ

wix プロジェクトでは、ファイル「FileContainingMyPropery.wxs」のフラグメントに含まれるプロパティ「MyProperty」があります。プロジェクトのマージ モジュールと msi の両方でそのプロパティを使用したい:

ここに画像の説明を入力

しかし、SecureCustomProperties は MergeModule からマージされていないため、自分のプロパティをセキュアとしてマークすることはできません...

プロパティの目的は、一部のコンポーネントがデプロイされるパスを格納することです。プロパティの値は、レジストリを照会することによって設定されます。

このプロパティを安全でないと設定してもよろしいですか?

0 投票する
0 に答える
113 参照

wix - アンインストール後に発行元ポリシーのレジストリ エントリがクリーンアップされない

シナリオ: GAC にインストールされる特定のアセンブリを含むマージ モジュールがあります。このマージ モジュールは、msi パッケージによって消費されます。

マージ モジュールには、各アセンブリに関連付けられた GAC パブリッシャー ポリシー ファイルも含まれています。

msi パッケージがインストールされると、これらの発行元ポリシー ファイルに対応するいくつかのレジストリ エントリが HKLM\SOFTWARE\Microsoft\Fusion\PublisherPolicy\Default の下に作成されます。この msi パッケージのアンインストール後、実際のパブリッシャー ポリシー ファイルとアセンブリが GAC からクリーンアップされても、パブリッシャー ポリシー ファイルに対応するレジストリ エントリはクリーンアップされません。

これまでに行われた調査:

要約すると、以下の URL は、パブリッシャー ポリシー ファイルをインストーラーに含めるための Windows インストーラーの標準は、それらをマージ モジュールではなく MSI パッケージに直接追加することであると述べています。それらをマージ モジュールに追加する際の問題により、CLR によって使用される関連付けられたポリシー レジストリ キーがレジストリ内で孤立します。

以下のリンクでこの問題の原因が説明されていると思います。基本的に、Windows インストーラー標準では、マージ モジュールを使用してパブリッシャ ポリシー ファイルを GAC にインストールしてはならないことが示されています。おそらく、インストーラー検証の目的は、ポリシー ファイルを特定の製品バージョンに明示的に関連付けることです。

参照: http://msdn.microsoft.com/en-us/library/windows/desktop/aa369203(v=vs.85).aspx

動作を確認するために、msi インストール パッケージを手動で変更し、ポリシー ファイル コンポーネントを ModuleComponents テーブルから削除しました。これにより、コンポーネント参照がマージ モジュールに関連付けられなくなり、MSI パッケージに直接割り当てられます。アンインストール後、ポリシー ファイルのレジストリ エントリはレジストリ内で孤立しなくなり、問題は解決しました。

考えられる解決策

長期的な解決策は、マージ モジュールを再設計してポリシー ファイルを除外し、各製品 MSI パッケージに直接追加することです。

この問題を解決するための他のより良い解決策はありますか?

よろしく、 キラン・ヘグデ