Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Installation in den GAC


5 replies to this topic

ANo

ANo
  • Full Members
  • 179 posts

Posted 14 December 2007 - 09:16

Eine Frage ans Forum,
hat jemand Erfahrung mit der Installation eines .NET-Objekts (mit eingebetteter TypeLibrary) in den GAC (wobei auch die Typelibrary zu registrieren ist)?

Gruß
André


ali

ali
  • Full Members
  • 1,008 posts

Posted 14 December 2007 - 13:10

du müsstest für diese Komponente .Net COM Interop auf Ja setzen.

ANo

ANo
  • Full Members
  • 179 posts

Posted 14 December 2007 - 13:55

Hallo Ali,
das werde ich nochmal probieren (.NET COM Interop).

Das Problem liegt darin, daß eine Typelibrary eingebunden ist, die auch registriert werden muß.
Irgendwie gabs damit ein Problem mit der Registrierung über .NET COM Interop.

Wir haben da ziemliche Klimmzüge gemacht:
Ich stelle zu bestimmten Zeitpunkten die Informationen (Version, PublicKey, ...) bereit (über Property, CustomActionData) für eine exe-Datei, die die (Un)registrierung regelt (bei Installation, Repair, Remove).

Also wahnsinnig kompliziert. Aber funktioniert - aber nicht beim Patch.

Ich probiers einfach nochmals. Vielleicht lags/liegts auch an unserem .NET-Objekt.


Gruß
André


ANo

ANo
  • Full Members
  • 179 posts

Posted 14 December 2007 - 15:35

Hallo Ali + alle,
ich habs nochmal probiert über .NET COM Interop.

Das .NET-Objekt wird registriert. Die Interfaces sind registriert/verfügbar.

Was fehlt ist die registrierte Typelibrary. Die wird aber benötigt für das Eventhandling mit unmanaged Code.

Hat da jemand eine Idee?

Gruß
André




ANo

ANo
  • Full Members
  • 179 posts

Posted 17 December 2007 - 14:24

Der einfachste Weg ist vermutlich die Registrierungsdaten für die TypeLibraryder Komponente mitzugeben, im deutschen IS heißt das "REG-Datei zur Zusammenführung bei Erstellung". (Fkt. für Inst., Remove, Repair)

Mehraufwand bedeutet dies für den Release, dass ich aufpassen muß, dass die Dinge zusammenpassen (Dll + TypeLibrary + GUID der TypeLibrary).
Um dies selber in die Hand zunehmen fehlt mir die Möglichkeit die GUID der TypeLibrary zu ermitteln. Diese Info kann IS nicht extrahieren. Diese Info bekomme ich nur bei der Erstellung der Dll selbst. Oder?

Gruß
André



ANo

ANo
  • Full Members
  • 179 posts

Posted 18 December 2007 - 09:45

Hallo, wir haben nochmal diskutiert bei uns.
Die unmanaged Objekte (COM) haben ja auch eine TypeLibrary (Tlb) eingebunden.
Wenn regsvr32 bei der Installation ausgeführt wird, ruft regsvr32 intern atl-Code auf was die im Objekt eingebundene Tlb registriert.
Ich weiß, man soll regsvr32 nicht benutzen. Seit IS6, ISX, IS12 benutzen wir es - ohne Probleme.

Nun haben wir managed Objekte. Egal wo die hin installiert werden (GAC, Common) - die eingebundene Tlb muß auch registriert werden.

Das mit den zusätzlichen RegKeys finden wir nicht so gut (siehe Eintrag gestern).
Das wäre wieder eine Bastelei.

Irgendwie brauchen wir auch einen Mechanismus, der im .NET-Objekt die Registrierung der Tlb anstößt.

Muß da das .NET-Objekt eine Windows Installer Klasse beinhalten?
Hat so etwas jemand schon mal benutzt?

André