New AppROT() ambigious in E.ArcGIS.Framework

275
5
Jump to solution
12-23-2019 01:42 PM
Highlighted
New Contributor III

dear Readers,

thank you for taking the time to help me out.  We are upgrading an ArcObjects VB. NET application written in 2008; it was periodically upgraded to the enterprise approved ArcGIS. 

Currently we are upgrading that ArcObjects Toolbar from ArcGIS 10.3 to 10.5. (build 10.5.0.6491).  

System.Runtime.InteropServices.COMException occurred
  HResult=0x80040111
  Message=Retrieving the COM class factory for component with CLSID {FABC30FB-D273-11D2-9F36-00C04F6BC61A} failed due to the following error: 80040111 ClassFactory cannot supply requested class (Exception from HRESULT: 0x80040111 (CLASS_E_CLASSNOTAVAILABLE)).
  

Dim pApplication As ESRI.ArcGIS.Framework.IApplication = Nothing
Dim pAppROT As IAppROT = New AppROT()

It failed at New AppROT() declaration with the above error.  

I know it is a namespace issue and any help will be greatly appreciated.  In the meanwhile, I will be trying to 'fix' it by trying some changes...

thanks and regards

ravi kaushika

Reply
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Regular Contributor

Hi Ravi,

1. Two entries in registry. That is ok. That is COM technology nuance.

2. If you downgraded ArcGIS I would recommend you renew references to ArcGIS libraries in your VB project.

3. About installation package. All these things you can setup in your installation package project. We still use Visual Studio installer project template.

View solution in original post

Reply
0 Kudos
5 Replies
Highlighted
Regular Contributor

Hi Ravi,

Open registry editor and try to find FABC30FB-D273-11D2-9F36-00C04F6BC61A guid in your registry. If there is no info in your registry then your ArcGIS install is corrupted or you use ArcGIS server but not ArcGIS desktop software because AppROT is available for ArcGIS Desktop only.

Reply
0 Kudos
Highlighted
New Contributor III

Gintautas Kmieliauskas‌,

Sorry for not reaching out to you earlier. Hope you had a good new year.

thanks for your guidance.  When I wrote the question on this forum, I was trying to fix my code with minimum modifications to ensure that overall user experience is not modified.  Here are few things I noted before replying to your suggestion:

  1. when I change from line 1 to line 2, nothing happens in terms of  behavior:
                   Dim pAppROT As ESRI.ArcGIS.Framework.IAppROT = New AppROT()
    Dim pAppROT As IAppROT = New AppROT()‍‍‍‍‍‍
  2. when I checked the registry based on your suggestions - I saw 2 entries with that GUID and surprisingly for each esri entry, there is additional entry with suffix of .1.  please refer the attached PDF.
    1. at first, I had ArcGIS 10.7.x and it was downgraded to 10.5.1 (7000+ build number) and later to 10.5.0.6491.
  3. Any suggestions to remedy the double entry of the registry as seen in the attached PDF?
  4. Many years ago, there was a walkthrough to 'add' the .tlb and associated files to an installation package that would also register the COM objects into a deploy/ visual studio install project with appropriate COM reg and unreg commands.  If I am not wrong it was for 10.3 or older, Win XP and VS 2015 or older. Do you have any guiding documents?.  I have been searching for this in the sibling folders of https://desktop.arcgis.com/en/arcobjects/latest/net/webframe.htm#COMComponentCategoryAndCOMInterop.h... 

thank you for your help.

regards

ravi kaushika

Reply
0 Kudos
Highlighted
New Contributor III

Adding the file one more time.

Reply
0 Kudos
Highlighted
Regular Contributor

Hi Ravi,

1. Two entries in registry. That is ok. That is COM technology nuance.

2. If you downgraded ArcGIS I would recommend you renew references to ArcGIS libraries in your VB project.

3. About installation package. All these things you can setup in your installation package project. We still use Visual Studio installer project template.

View solution in original post

Reply
0 Kudos
Highlighted
New Contributor III

Gintautas Kmieliauskas‌,

good afternoon.  thank you for a fast response.  I didn't realize that I had ONLY a professional version of Visual studio of 2017.

I marked it correct for the answer to benefit the few ArcObjects junkies like myself.

thanks and regards

ravi.

Reply
0 Kudos