ESRIRegAsm Failure

2914
9
04-06-2011 08:10 AM
ChristopherMcCabe
New Contributor
I am developing a plug-in for ArcMap and ArcCatalog that will allow me to import my own propriatary data format. I can get it to register via ESRIRegAsm in debug mode on my development machine. However... When I register the release mode, it says it registers successfully but when I launch ArcMap or ArcCatalog my plug-in dll is never loaded. Again the debug worked fine.

On my release machine I am trying to register the debug mode and it is failing with:

**********************************


ESRIRegAsm::Register
  Command line: /p:desktop C:\VFCompiler\ArcPlugin\Debug\AOPlugInHDF.dll /e

  ERROR: LoadLibrary failed with specified path.

Operation Failed
002DF368

**********************************

Press Enter to continue...


I try registering the release version and it acts like my development machine where it succeeds but fails to load the plug-in.

If anyone has any ideas that could help me that would be much appreciated.

Thanks.
C. McCabe
Reply
0 Kudos
9 Replies
RichardWatson
Regular Contributor III
Suggest that you investigate whether or not your DLL has any dependencies which are not met.

If it is .NET then use fuslogvw or Reflector.  If it is pure COM then use the Depends utility.

Release machines, i.e. machines which do not have Visual Studio installed, usually do not have debug versions of the various libraries installed.
Reply
0 Kudos
ChristopherMcCabe
New Contributor
I am pretty sure I have all the dependencies there since in release mode it is registering. Usually it won't register if it is missing dependencies. It is also creating the .ecfg file in release mode on the release machine. But again it won't load the plugin's dll.
To test I did run depends and I have all the dependant dll's present.
Reply
0 Kudos
RichardWatson
Regular Contributor III
What is the XML inside the ecfg that you generated?

Rename the ecfg file to zip, unzip it, and then look at the XML.
Reply
0 Kudos
ChristopherMcCabe
New Contributor
Here is the XML: The CLSID matches the WorkspaceFactory uuid

<?xml version="1.0"?>
<ESRI.Configuration ver="1">
<Categories>
   <Category CATID="{07BC056E-DB8A-11D1-AA81-00C04FA33A15}">
      <Class CLSID="{8f8933fd-a684-4d2e-a30c-6dd2477d519a}"/>
   </Category>
   <Category CATID="{6E208C99-DBD3-11D2-9F2F-00C04F6BC69E}">
      <Class CLSID="{8f8933fd-a684-4d2e-a30c-6dd2477d519a}"/>
   </Category>
   <Category CATID="{7BF26B1F-C776-11D2-9F24-00C04F6BC69E}">
      <Class CLSID="{8f8933fd-a684-4d2e-a30c-6dd2477d519a}"/>
   </Category>
</Categories>
</ESRI.Configuration>
Reply
0 Kudos
RichardWatson
Regular Contributor III
Can you post the contents of HKCR\CLSID\{8f8933fd-a684-4d2e-a30c-6dd2477d519a} and all child keys?

What the software should do is to CoCreate this CLSID using the information in the registry.  If your assembly has no missing references then the only other thing that I can think of is that something about the registration is incorrect.
Reply
0 Kudos
ChristopherMcCabe
New Contributor
Here is the content of the HKCR:

HKCR
{
AOPlugInHDF.HDFWorkspaceFactory.1 = s 'HDFWorkspaceFactory Class'
{
  CLSID = s '{8f8933fd-a684-4d2e-a30c-6dd2477d519a}'
}
AOPlugInHDF.HDFWorkspaceFactory = s 'HDFWorkspaceFactory Class'
{
  CLSID = s '{8f8933fd-a684-4d2e-a30c-6dd2477d519a}'
  CurVer = s 'AOPlugInHDF.HDFWorkspaceFactory.1'
}
NoRemove CLSID
{
  ForceRemove {8f8933fd-a684-4d2e-a30c-6dd2477d519a} = s 'HDFWorkspaceFactory Class'
  {
   ProgID = s 'AOPlugInHDF.HDFWorkspaceFactory.1'
   VersionIndependentProgID = s 'AOPlugInHDF.HDFWorkspaceFactory'
   InprocServer32 = s '%MODULE%'
   {
    val ThreadingModel = s 'Apartment'
   }
   val AppID = s '%APPID%'
   'TypeLib' = s '{d7dc61de-310a-458a-8cf2-675f4eb62cf9}'
  }
}
}
Reply
0 Kudos
RichardWatson
Regular Contributor III
What is the actual content in the registry?

For example, I am wondering if your %MODULE% has the full path.

One thing that you might do is to see if you can write a simple program which creates an instance of your class using pure COM, e.g. CreateObject("AOPlugInHDF.HDFWorkspaceFactory").
Reply
0 Kudos
ChristopherMcCabe
New Contributor
Added screenshot attachment of registry.
Reply
0 Kudos
DrewDowling
Occasional Contributor III

Did you ever find a solution to this? I am having the same error. I want to register class extensions with ArcGIS Server. They are working fine with ArcMap on the same machine.

Reply
0 Kudos