Wie kommt man zum Pfad zu einer Assembly im GAC innerhalb Registrierungseinträge beziehen von einem Windows Installer-Paket hinzugefügt?
-
01-07-2019 - |
Frage
Ich habe eine .NET-Assembly, die Klassen enthält als ServicedComponent durch Enterprise registriert werden (COM +) und durch eine Drittanbieter-Anwendung über COM RPC aufgerufen. Daher muss ich beide es dem GAC hinzufügen und einen Registrierungseintrag unter HKEY_CLASSES_ROOT\CLSID\{clsid}\CodeBase
mit dem Pfad innerhalb des GAC-Ordner in dem Assembly-DLL hinzuzufügen. (Ich kann nicht auf Regsvcs verlassen, es zu tun, denn dies ist eine Baugruppe 32-Bit ist --- es stützt sich auf 32-Bit-Komponenten von Drittanbietern --- und die Drittanbieter-Anwendung ich vor genannten nicht sehen können Klassen in Wow6432Node)
Die Frage ist also:
Sind Pfade zu Assemblys im GAC geschaffen werden, oder zumindest der Pfad zu dem GAC Ordner selbst, verfügbar in Windows Installer als Eigenschaften, die usw. in Werten des Registrierungsschlüssels verwendet werden können.
Lösung
Wenn Sie eine Komponente pro Datei, die Sie sollten auf jeden Fall, die KeyPath der Komponente zeigt auf die Stelle, wo die Datei (in diesem Fall der GAC) installiert wird. Sie können die Komponente Schlüssel als Zeichen im Wertefeld des Eintrags in der Registry Tabelle in Ihrem MSI verwenden.
Angenommen, Sie haben eine Baugruppe mit einem Dateischlüssel in der Dateitabelle von „assmb.dll“ und der entsprechenden Komponente, auch „assmb.dll“. Sie können den Wert Feld in der Tabelle Registry setzen Ihre Montage auf [$ assmb.dll] zu registrieren, und es wird an den Installationsort der Montage gelöst bekommen. Wenn dieses Verzeichnis das GAC ist, wird es an die Stelle des GAC aufgelöst werden.
Sie können mehr Informationen über Formatierte Felder in einem MSI finden hier .