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;

  1. cannot load type library reference "eventpackage". library not registered. (exception hresult: 0x8002801d (type_e_libnotregistered))
  2. the referenced component 'eventpackage' not found.
  3. 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

  1. ran vb6->vb.net wizard

then added lines assemblyinfo.vb file

  1. added imports system.enterpriseservices
  2. added imports system.enterpriseservices
  3. imports system.data.sqlclient
  4. <assembly: clscompliant(true)>
  5. <assembly: assemblykeyfileattribute("...")> strong name
  6. <assembly: guid("...")> (where "..." com+ clsid of old component)

i added following class file ieventlistener.vb

  1. imports system.enterpriseservices
  2. <comclass("...")> _ (where ... proper com+ clsid, argument)
  3. inherits servicedcomponent
  4. 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