WiX を使用した MSI インストール中に CPP DLL を COM に確実に登録するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-19 08:02:02
オリジナル
708 人が閲覧しました

How Can I Reliably Register a CPP DLL in COM During MSI Installation Using WiX?

Wix Msi インストーラーを使用したインストール後の CPP DLL の COM への登録

問題: MSI のインストール中に CPP ライブラリが COM に登録されません

解決策:

バッチ ファイルとカスタム アクションの使用を停止します:

バッチを手動で実行します。 COM 登録のファイルとカスタム アクションは信頼できません。

heat.exe を使用して COM 登録情報を抽出します

  1. WiX ツールキットの heat.exe ツールを使用して、 CPP dll から COM 登録情報を抽出します。
  2. 抽出されたレジストリ データは、コンパイル時に MSI データベースに入力するために使用され、インストール中に信頼性の高い COM 登録が保証されます。

欠落した依存関係に対処する

COM ファイルを読み込めないのは、多くの場合、欠落した依存関係が原因です。

  1. Dependency Walker を使用して、欠落している依存関係がないか COM ファイルをスキャンします。
  2. 登録中にアクセスできるように、欠落している依存関係ファイルを COM DLL とともにインストール ディレクトリに配置します。

heat.exe による COM 抽出プロセス

  1. ローカル フォルダーまたはパスに依存関係がある 32 ビット COM ファイルの場合は、次のコマンドを使用します:

    heat.exe file YourFileName.ocx -o YourFileName.wxs
    ログイン後にコピー
  2. エクスポートされた WiX レジストリ データをメイン WiX ソースに組み込むには、この記事を参照してください: Wix で Heat Output(wxs) を参照する方法 (コマンドライン).

64 ビット バイナリ

heat.exe 64 ビット COM バイナリを正しく処理しません。 WiX Expansion Pack (商用) または自己登録 (非推奨) の使用を検討してください。

追加のヒント

  • 昇格された権限で登録が試行されていることを確認してください。
  • すべての依存関係が利用可能になった展開後に、COM ファイルに対して heat.exe コマンドが実行されていることを確認します。
  • Dependency Walker ツールを使用して、不足している依存関係や誤検知を把握します。

以上がWiX を使用した MSI インストール中に CPP DLL を COM に確実に登録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート