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
Nach dem Login kopieren
- 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!