質問

InstallShieldインストーラーでは、インストーラーでCOM DLLのCOM情報を更新しましたが、COM DLLのいくつかが正しく登録されていないようです。インストール後にregsvr32を手動で実行すると、すべて問題ありません。

インストール後に、ランダムに見える文字列を含むコンポーネントのレジストリにInprocServer32値があることに気づきます。これは Darwin記述子であると信じています。 。 regsvr32を手動で実行すると、これらのDarwin記述子は消えます。私の現在の仮説は、これらの記述子でエンコードされた情報が正しくないため、プログラムがCOMコンポーネントをインスタンス化しようとすると、DLLへのクリアテキストパスが正しい場合でも、誤ったDarwin記述子情報を使用して失敗します。

これが当てはまるかどうかを確認したり、これらの記述子をデコードしたり、InstallShieldがDarwin記述子を生成しないようにしたり、インストーラーを修正したりする方法に光を当てることはできますか?

役に立ちましたか?

解決

darwin記述子は、元の.MSIに戻るCOMエントリポイントを追跡するWindowsインストーラーサービスであると理解しています(削除された場合、.dllを修復できます)。 MSIは実際の値を保持します。

おそらくCOM情報を再構築したので、マシンからMSIをアンインストールして再インストールしました(したがって、msiexecはフルインストールではなくメンテナンスインストールを実行しているだけではありません)。

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