利用ArcGIS Engine和C#二次开发遇到的问题及解决办法

利用ArcGIS Engine和C#二次开发遇到的问题及解决办法

在利用ArcGIS Engine和C#二次开发的过程中,可能会遇到各种各样的配置及环境问题,下面是我在项目过程中遇到的问题以及相应的解决办法。

1.ArcGIS 10.3安装遇到的问题

ArcGIS 10.3的具体安装步骤
安装完成后可能会遇到破解不完全的情况,即使ArcMap可以打开,但是在C#调用相关动态连接库的时候可能会出现问题,无法调用,这就是破解不完全的问题,在按照步骤安装完ArcGIS 10.3 license manager后,从开始菜单打开ArcGIS Administrator确保许可管理器为localhost:
利用ArcGIS Engine和C#二次开发遇到的问题及解决办法_第1张图片
完全卸载ArcGIS 10.3的license管理器,即ArcGIS 10.3 license manager,然后安装相应的ArcGIS 10.2 license manager,安装成功后,将ArcGIS 10.2安装文件中破解文件夹下的service.txt和ARCGIS.exe文件拷贝到C:\Program Files (x86)\ArcGIS\License10.2\bin路径下进行覆盖,即可完成破解,解决权限问题。

2.C#中调用IDL程序遇到的问题

C#中通过COM组件调用COM_IDL_Connect方法

                COM_IDL_connect COM = new COM_IDL_connect();

可能会遇到“步骤提示…80040154没有注册类…”的问题,如下图所示
利用ArcGIS Engine和C#二次开发遇到的问题及解决办法_第2张图片
这就是COM_IDL_Connect组件没有注册,需要通过管理员权限利用regsvr32命令进行注册,如下图所示
利用ArcGIS Engine和C#二次开发遇到的问题及解决办法_第3张图片
弹出提示框,即为注册成功
利用ArcGIS Engine和C#二次开发遇到的问题及解决办法_第4张图片

3.ArcEngine调用GP工具遇到的问题

C#中调用ArcEngine的GP工具可能会遇到没有权限的问题(ERROR 000824: The tool is not licensed ),如下图所示
利用ArcGIS Engine和C#二次开发遇到的问题及解决办法_第5张图片
这就是License控件权限不够的问题,可以通过添加以下代码获取权限

            IAoInitialize m_Aolnitialize = new AoInitializeClass();
            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
            m_Aolnitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard);
            m_Aolnitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
            m_Aolnitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);
            m_Aolnitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);

以上就是我近期遇到的问题以及相应的解决办法,欢迎留言交流。
编辑人:陈鑫

你可能感兴趣的:(教程)