Wie kommt man zum Pfad zu einer Assembly im GAC innerhalb Registrierungseinträge beziehen von einem Windows Installer-Paket hinzugefügt?

StackOverflow https://stackoverflow.com/questions/106414

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.

War es hilfreich?

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 .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top