vb6 - How do I properly register the Type Library of A VB.NET COM+ Component? -
i looking upgrade legacy vb6 com+ components vb.net components. have seemingly upgraded 1 already, called eventpackage, has 1 class, ieventlistener. another, tradeorders, implements eventpackage.ieventlistener. when attempting build tradeorders, following errors/warnings;
- cannot load type library reference "eventpackage". library not registered. (exception hresult: 0x8002801d (type_e_libnotregistered))
- the referenced component 'eventpackage' not found.
- type 'eventpackage.ieventlistener' not defined.
in .vbproj, notice reference
<comreference include="eventpackage"> <guid>{0d76c094-21a6-4e04-802b-6e539f7102d7}</guid> <lcid>0</lcid> <versionmajor>2</versionmajor> <versionminor>0</versionminor> <wrappertool>tlbimp</wrappertool> </comreference> when search registry guid, find nothing. when using guids similar com+ objects, find them in hkey_classes_root\clsid\{...}\typelib ("..." being guid of other component). when go registry key name corresponding eventpackage.ieventlistener, find there no \typelib subkey. might suspect, searching reg "0d76c094-21a6-4e04-802b-6e539f7102d7" yields no results.
so know must registry problem, have tried seemingly every google result have found. have tried regasm , regsvcs .exe's no avail. many pages tell me dragging dll com+ manager should automatically register component.
so how register type library?
details on how made eventpackage com+ component
- ran vb6->vb.net wizard
then added lines assemblyinfo.vb file
- added
imports system.enterpriseservices - added
imports system.enterpriseservices imports system.data.sqlclient<assembly: clscompliant(true)><assembly: assemblykeyfileattribute("...")>strong name<assembly: guid("...")>(where "..." com+ clsid of old component)
i added following class file ieventlistener.vb
imports system.enterpriseservices<comclass("...")> _(where ... proper com+ clsid, argument)inherits servicedcomponent- changed id made conversion wizard proper value (from
<system.runtime.interopservices.progid("ieventlistener_net.ieventlistener)><system.runtime.interopservices.progid("eventpackage.ieventlistener")> _
then dragged dll com+ manager in proper com+ application (although, "path" not specified , says mscoree.dll)
i had dam error (0x8002801d (type_e_libnotregistered)) yesterday, drove me crazy: vsto add-ins, comaddins , requestcomaddinautomationservice
it might red-herring answer has similar details reg keys not existing , etc:
right click on visual studio (2010) > run administrator > open project > compile!
Comments
Post a Comment