Kann DLL nicht mit WiX registrieren

8

Ich versuche eine DLL mit WiX zu registrieren. Jetzt weiß und verstehe ich, dass ich heat verwenden soll und es holen, um die Registrierungsinformationen für mich zu holen, aber Wärme scheint mit der folgenden Fehlermeldung fehlzuschlagen: heat.exe : warning HEAT5150 : Could not harvest data from a file that was expected to be a SelfReg DLL: C:\Users\seb\Desktop\Development\addin.dll. If this file does not support SelfReg you can ignore this warning. Otherwise, this error detail may be helpful to diagnose the failure: Unable to load file: C:\Users\seb\Desktop\Development\addin.dll, error: 193

Ich habe mich umgeschaut und diesen Post gefunden, der ein bisschen mehr über Registrieren von DLLs , aber ich möchte die Selbstregistrierungsroute möglichst vermeiden. Ich sehe auch Erwähnung der manuellen Registrierung der DLLs weiter unten, aber ich bin nicht so versiert mit der Registrierung oder COM-Objekte, die gut zu wissen, wo ich sogar die CLSID, ProgId, und alle anderen Informationen, die erwähnt wurde.

Wenn mir jemand in die richtige Richtung zeigen oder mir erklären kann, was ich tun muss, um die DLL durch heat laufen zu lassen, wäre das sehr zu schätzen.

    
Seb 17.09.2012, 16:16
quelle

3 Antworten

11

Ich weiß, das ist alt, aber ich wollte hier eine Antwort hinzufügen - der Grund dafür ist, weil die DLL, die Sie registrieren möchten, 64-Bit-DLL ist - und Heat.exe ist 32 Bit, so dass es die DLL nicht laden kann Adressraum. Wie auch immer, zeigen Sie einfach auf eine 32-Bit-Version der DLL, um die wxs-Datei zu erstellen, und Sie sollten diesen Fehler nicht erhalten.

    
Brian Small 18.12.2014 19:34
quelle
1

Ist das eine nicht verwaltete / native DLL? Zeigt Dependency Walker fehlende Abhängigkeiten an? Normalerweise bedeutet dies, dass die DllRegisterFunction fehlgeschlagen ist und Heat keine Daten extrahieren konnte. Beheben Sie dieses Problem, und Sie sollten eine gute XML-Metasammlung erhalten.

    
Christopher Painter 17.09.2012 19:34
quelle
0

Ich hatte dasselbe Problem mit Wix heat.exe: Warnung HEAT5150: Daten konnten nicht aus einer Datei, die als SelfReg-DLL erwartet wurde, abgerufen werden. Der Grund dafür ist, dass dll die zu ladende Abhängigkeit nicht finden konnte. Ich denke, du musst ähnliche Probleme haben. Ich habe Process Monitor Tool ausgeführt und Filter angewendet, um das Ereignis heat.exe zu erfassen. Ich konnte die Ursache des Problems finden. Im Grunde musste ich alle dependency dll an den gleichen Ort, wo meine Haupt-DLL war. Für Ihren Fall muss addin.dll auf denselben Speicherort verweisen, auf dem sich die abhängigen DLLs befinden.

Der folgende Blog über diese Warnung hat mir sehr geholfen, die Ursache herauszufinden.

Ссылка ?

    
user1029083 18.09.2012 21:14
quelle

Tags und Links