ホームページ  >  記事  >  バックエンド開発  >  WiX を使用して MSI インストーラーに COM DLL を確実に登録するにはどうすればよいですか?

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-20 11:52:111011ブラウズ

How Can I Reliably Register a COM DLL in an MSI Installer Using WiX?

Wix Msi インストーラーを使用して MSI に COM DLL を登録する

バッチ ファイルとカスタム アクションを避けるべき理由

バッチ ファイルとカスタム アクションのメソッドCOM 登録は信頼できません。登録を確実に成功させるには、WiX ツールキットの heat.exe ツールを使用することが不可欠です。このツールは、コンパイル中に MSI データベースに含めるための COM 登録情報を抽出します。

heat.exe を使用した COM 登録情報の抽出

COM ファイルに対して heat.exe を実行します (たとえば、「heat.exe」)。 exe ファイル Abc.dll -o Abc.wxs") を実行して、必要なレジストリ データを含む対応する WiX XML を生成します。参照または埋め込み手法を使用して、この XML をメイン WiX ソースに組み込みます。

依存関係の解決を確保する

依存関係が欠落していると、COM の登録が妨げられる可能性があります。欠落している DLL を特定するには、Dependency Walker または dependency.exe を使用します。これらの DLL を COM ファイルの横に配置するか、インストール パスでアクセスできることを確認してください。

64 ビット バイナリに関する考慮事項

現在、heat.exe は 64 ビット COM バイナリの処理に制限があります。 WiX Expansion Pack は、必要に応じて 64 ビット コンポーネントのサポートを提供します。あるいは、一時的な解決策として自己登録を検討することもできますが、インストール中に問題が発生する可能性があるため、お勧めできません。

追加のヒント

  • 常に管理者特権のコマンドから COM 登録を実行してください。プロンプト。
  • Heat.exe は、カスタム .NET アセンブリ (RegAsm.exe が生成するものなど) を抽出しません。 COM 登録。
  • heat.exe によって生成された SourceDir パスには、プレースホルダー パスが含まれる場合があります。インストール ディレクトリを正確に反映するために、必要に応じて調整してください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。