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é
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.

Installation in den GAC
Started by
ANo
, Dec 14 2007 09:16
5 replies to this topic
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é
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é
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é
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é
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é
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é
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é
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é