Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mithilfe von WiX zuverlässig eine COM-DLL in einem MSI-Installationsprogramm registrieren?

Wie kann ich mithilfe von WiX zuverlässig eine COM-DLL in einem MSI-Installationsprogramm registrieren?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-20 11:52:111009Durchsuche

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

Registrieren einer COM-DLL in MSI mit dem Wix Msi Installer

Warum Batchdateien und benutzerdefinierte Aktionen vermieden werden sollten

Batchdateien und benutzerdefinierte Aktionsmethoden für COM-Registrierung ist unzuverlässig. Um eine erfolgreiche Registrierung sicherzustellen, ist es unbedingt erforderlich, das Tool heat.exe aus dem WiX-Toolkit zu verwenden. Dieses Tool extrahiert COM-Registrierungsinformationen zur Aufnahme in die MSI-Datenbank während der Kompilierung.

COM-Registrierungsinformationen mit heat.exe extrahieren

Führen Sie heat.exe für die COM-Datei aus (z. B. „heat. exe-Datei Abc.dll -o Abc.wxs"), um das entsprechende WiX-XML mit den erforderlichen Registrierungsdaten zu generieren. Integrieren Sie dieses XML mithilfe einer Referenz- oder Einbettungstechnik in Ihre WiX-Hauptquelle.

Sicherstellung der Abhängigkeitsauflösung

Fehlende Abhängigkeiten können die COM-Registrierung verhindern. Verwenden Sie Dependency Walker oder Dependencies.exe, um fehlende DLLs zu identifizieren. Platzieren Sie diese DLLs neben der COM-Datei oder stellen Sie sicher, dass sie im Installationspfad zugänglich sind.

Überlegungen zu 64-Bit-Binärdateien

Derzeit gelten für heat.exe Einschränkungen bei der Verarbeitung von 64-Bit-COM-Binärdateien. Das WiX Expansion Pack bietet bei Bedarf Unterstützung für 64-Bit-Komponenten. Alternativ können Sie die Selbstregistrierung als vorübergehende Lösung in Betracht ziehen, dies wird jedoch nicht empfohlen, da sie während der Installation zu Problemen führen kann.

Zusätzliche Tipps

  • Führen Sie die COM-Registrierung immer über einen Befehl mit erhöhten Rechten aus Eingabeaufforderung.
  • Heat.exe extrahiert keine benutzerdefinierten .NET-Assemblys (wie RegAsm.exe generiert) für die COM-Registrierung.
  • Der von heat.exe generierte SourceDir-Pfad kann Platzhalterpfade enthalten. Passen Sie sie nach Bedarf an, um das Installationsverzeichnis genau wiederzugeben.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von WiX zuverlässig eine COM-DLL in einem MSI-Installationsprogramm registrieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn