Solved! Go to Solution.
It appears to me that when you run the ESRIRegAsm tool that it produces a file in the following directory:
C:\Program Files\Common Files\ArcGIS\Desktop9.4\Configuration\CATID
The name of the file is something like {GUID}_name.ecfg. The file itself is really a zip file which contains a file named config.xml. It appears that ArcMap is using this file to determine component categories versus that which is in the registry.
I did the following:
1) Used the VB6 sample which has a tool bar, extension, and zoom in and out commands and built the DLL and reg file needed on a 9.3.1 system
2) Tested the sample on 9.3.1; no problems
3) Tested the sample on 9.4 using ESRIRegAsm; it does not work
4) Went to the CATID directory, extracted the config.xml, manually repaired the XML, and put it back in the zip
5) Tested the sample, no problems
ESRI, why don't you provide a trivial tool which does this?
Hi Can you please tell me what is that you manually repaired in the XML. I am having the same problem. And when I look into the CATID directory I noticed the CLSID values dont match the values from the component catergories. I modified the values in the config.xml to match the Component Categories and tried to execute ESRIRegAsm using the syntax
ESRIRegAsm /p:Desktop "MyDLL.dll" /f:"Config.dll" but didnt work.
Thanks,
Sirisha.
Private Sub btnTest_Click() On Error GoTo EH Dim vok As Boolean Dim lok As Boolean 'bind to an ArcGIS 10 version: Dim version As String version = "10.0" Dim vmgr As ArcGISVersionLib.IArcGISVersion Set vmgr = New ArcGISVersionLib.VersionManager vok = vmgr.LoadVersion(esriArcGISDesktop, "10.0") If Not vok Then Err.Raise 1, , "Unable to bind to ArcGIS version " & version End If 'now get a license: Dim ao As esriSystem.IAoInitialize Set ao = New esriSystem.AoInitialize lok = True If (ao.IsProductCodeAvailable(esriLicenseProductCodeArcInfo) = esriLicenseAvailable) Then ao.Initialize esriLicenseProductCodeArcInfo Else lok = False Err.Raise 2, , "Unable to get an ArcGIS Desktop license." End If 'report results: MsgBox "Bound to ArcGIS 10: " & vok & vbCrLf & "Got a license: " & lok ExitSub: Exit Sub EH: MsgBox Err.Description Resume ExitSub End Sub