Registrieren einer CPP-DLL in COM nach der Installation mit dem Wix Msi Installer
Problem: Die CPP-Bibliothek wird während der MSI-Installation nicht in COM registriert , trotz Versuchen mit anderen Ansätze.
Lösung:
Verwendung von Batchdateien und benutzerdefinierten Aktionen beenden:
Manuelles Ausführen von Batchdateien und benutzerdefinierten Aktionen für Die COM-Registrierung ist unzuverlässig.
COM-Registrierungsinformationen extrahieren mit heat.exe
- Verwenden Sie das Tool heat.exe aus dem WiX-Toolkit, um die COM-Registrierungsinformationen aus der CPP-DLL zu extrahieren.
- Die extrahierten Registrierungsdaten werden verwendet Füllen Sie die MSI-Datenbank zur Kompilierungszeit auf und stellen Sie so eine zuverlässige COM-Registrierung während der Installation sicher.
Adressierung fehlt Abhängigkeiten
Dass die COM-Datei oft nicht geladen werden kann, ist auf fehlende Abhängigkeiten zurückzuführen.
- Verwenden Sie Dependency Walker, um die COM-Datei auf fehlende Abhängigkeiten zu scannen.
- Ort die fehlenden Abhängigkeitsdateien im Installationsverzeichnis zusammen mit der COM-DLL, um sie während der Installation zugänglich zu machen Registrierung.
COM-Extraktionsprozess mit heat.exe
-
Für 32-Bit-COM-Dateien mit Abhängigkeiten im lokalen Ordner oder Pfad , verwenden Sie diesen Befehl:
heat.exe file YourFileName.ocx -o YourFileName.wxs
- Informationen zum Einbinden der exportierten WiX-Registrierungsdaten in die Haupt-WiX-Quelle finden Sie unter Dieser Artikel: So referenzieren Sie eine Wärmeleistung (wxs) in Wix (Befehlszeile).
64-Bit-Binärdateien
heat.exe wird nicht korrekt ausgeführt Verarbeiten Sie 64-Bit-COM-Binärdateien. Erwägen Sie die Verwendung des WiX-Erweiterungspakets (kommerziell) oder die Selbstregistrierung (nicht empfohlen).
Zusätzliche Tipps
- Stellen Sie sicher, dass die Registrierung mit erhöhten Rechten versucht wird.
- Stellen Sie sicher, dass der Befehl heat.exe nach der Bereitstellung in der COM-Datei ausgeführt wird, wenn alle Abhängigkeiten vorhanden sind verfügbar.
- Verwenden Sie das Dependency Walker-Tool, um fehlende Abhängigkeiten oder Fehlalarme zu verstehen.
Das obige ist der detaillierte Inhalt vonWie kann ich während der MSI-Installation mit WiX zuverlässig eine CPP-DLL in COM 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