Ich bin relativ neu in WiX. Es ist ein großartiges Werkzeug, aber ich brauche noch etwas Zeit , um es besser zu lernen. Ich habe ein Problem mit der Registrierung und Aufhebung der Registrierung einer COM Komponente festgestellt. Ich habe Installer für zwei Anwendungen erstellt, nennen wir sie A und B. Beide verwenden die gleiche COM-Komponente. Ich habe das Wärmewerkzeug, wie empfohlen. Bei der Installation von A oder B wird die Komponente ohne Probleme registriert.WIX: COM Aufhebung der Registrierung beim Entfernen eines von zwei Programmen
Aber wenn ich A und B installieren, dann entfernen A (mit Hinzufügen/Entfernen von Programmen) die COM Klasse wird nicht registriert und B kann nicht mehr verwendet werden. Gibt es eine saubere Lösung, um dies zu verhindern? Ich möchte die COM abmelden, wenn BEIDE A und B deinstalliert werden.
Jede Hilfe dankbar, würde
Mit freundlichen Grüßen, MadBadger
EDIT: Vielen Dank für Ihre Antworten. Ich setze die GUID auf den gleichen Wert in den beiden Installern und jetzt werden die Registrierungsschlüssel korrekt entfernt, dh wenn das letzte Programm aus dem System entfernt wird.
Hovewer, das Problem besteht aus einem Grund. Ich habe die Registrierung unter HKEY_CLASSES_ROOT/CLSID/[entsprechende COM GUID] überprüft. Folgendes geschieht:
- Ich installiere A und der Pfad zu COM wird auf [Pfad zu A/component.dll] gesetzt
- Ich installiere B und der Pfad zu COM wird auf [Pfad zu B/component.dll festgelegt ]
- Ich entferne B und der Pfad zu COM bleibt [Pfad zu B/component.dll]
- Jetzt kann A nicht auf die COM-Komponente zugreifen, durch die es registriert ist, da [Pfad zu B/component.dll] nicht existiert mehr
Jetzt nehme ich an, dass es obligatorisch ist, die COM-Komponente für beide Anwendungen in dasselbe Verzeichnis zu legen. Kann Windows Installer nicht zum alten Pfad zurückkehren oder fehlt mir etwas?
Sollte ich die COM-Komponente an einem Ort für beide Installer setzen? Ist der Ordner system32 ein guter Platz dafür? – madbadger
Ja, du musst es an die gleiche Stelle setzen.(Das Windows-Installationsprogramm identifiziert sich mit der GUID und dem Datei-/Registrierungspfad). System32 ist kein guter Ort. Ich würde vorschlagen, irgendwo unter dem gemeinsamen Dateien-Ordner (normalerweise 'Programme \ Gemeinsame Dateien \ YourCompanyName}. Sie würden dies in Wix wie folgt eingeben: 'Directory =" [CommonFilesFolder] \ YourCompanyName "' –
Vielen Dank für die Erklärung so gut! – madbadger