2

2 つの OCX ファイルを Program Files (x86) フォルダーに配置し、両方の OCX ファイルを登録する MSI を作成しようとしています。

2 つの OCX ファイルの最初のファイル (実行時に 2 番目の OCX を実際に使用するファイル) が正常に登録されます。2 番目の OCX が正常に登録されていません。これは、登録に失敗した OCX で regsvr32 を実行すると、それが使用されているアプリケーションで機能するためです。

2 つの OCX ファイルの登録情報は、ハーベスト ツール (heat.exe) で生成されました。両方の OCX でヒート ツールを使用したため、OCX 登録が両方ではなく一方だけで機能する理由がわかりません。

これをデバッグするにはどうすればよいですか?

4

1 に答える 1

1

実際にはそれほど奇妙ではありません。COM の抽出/収集はトリッキーなビジネスです。十分な数の COM コンポーネントがあれば、うまくいかないことがよくあります。

あなたはすでに問題の半分を解決しています。regsvr32 が問題を修正するという事実は、あなたが近くにいて、他の依存関係を見逃していないことを示しています。

あなたがしたいことは、インストールされているが1つしか登録されていない状態のクリーンなマシン(VMはこのようなものに最適です)を取得することです。regsvr32 を実行する前後に、レジストリをスキャンしてキャプチャできるツール (InstallWatch はまともなツールです) を使用します。次に、スナップショットを比較して、変更点を確認します。

マシン上の他のプロセスからのノイズを除去する必要がありますが、少し経験を積めば何が変わったのかは明らかです。これを wxs ソースに組み込み、再構築して再テストします (ここでも VM は優れています)。

于 2013-01-18T21:27:10.907 に答える