ArcEngine开发中“ERROR 010096"错误,许可问题

2025-09-29 00:54:02

1、首先看一下错误,如图,在用vs开发时,调试时报错:“ERROR 010096: 当前没有或未启用 Spatial Analyst (或其他***)许可。”

ArcEngine开发中“ERROR 010096

2、很明显错误原因是缺少许可,那就奇怪了,有时候明明已经添加了许可空间LicenseControl,如图。也在此许可控件的属性(右键->属性)中设置了许可扩展,为什么还是没有许可,原因是可能许可服务没有启动成功,通过代码来设置许可更加稳定。解决办法如下:

ArcEngine开发中“ERROR 010096

3、第一步,添加许可控件,可以在任何一个窗体上添加,前提是安装好了开发环境。在工具箱中点击许可控件,如图:

ArcEngine开发中“ERROR 010096

4、第二步,打开自己项目的程序入口program.cs,在Main()函数里面写上绑定许可的代码,有三种写法:

ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop),这是只安装了开发包 ArcObjects SDKs for Mcrosoft .NET Framework,没有完成ArcGIS Engine的Runtime的安装;

或ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);  这是安装了Desktop和Engine的Runtime的写法;

或ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine),这是只安装了ArcEngine没有安装Desktop的写法。

根据自己的情况来写就行了。如图

ArcEngine开发中“ERROR 010096

5、第三步,再检查许可空间LicenseControl的属性中是否勾选了相关模块的许可,如图所示(我这里是SpatialAnalyst,如果你用到了别的模块,要勾上许可):ArcGIS Engine是最基本的,右边的扩展是根据你所开发的内容来定,如果没有用到这些功能,只勾选左边的ArcGIS Engine即可。

ArcEngine开发中“ERROR 010096

6、第四步,为了保证每次启动程序时不会出现没有许可的问题,在代码中再绑定一次,写出许可模块扩展的代码,在绑定了许可后的地方写上如下代码:

IAoInitialize _IAoInitialize = new AoInitializeClass();  

_IAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);  

_IAoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);  

以本人的为例,如图:

ArcEngine开发中“ERROR 010096

7、第五步,这样就完成了许可的绑定和扩展模块许可的设置了,重新运行程序,就不会报错了。OK

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢