AE初学遇到的问题以及解决方法的整理

本文介绍了解决ESRI.ArcGIS.AxControls.dll中出现的未经处理异常的具体步骤,包括如何通过设置许可证来指定ArcGIS版本,以及解决因“嵌入互操作类型”设置不当导致的问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.未经处理的异常在ESRI.ArcGIS.AxControls.dll中发生。

“System.InvalidOperationException”类型的未经处理的异常在 ESRI.ArcGIS.AxControls.dll 中发生 

其他信息: ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS components.

解决方法:在form1中加入LiscenseControl控件,并在public Form1中加入下列语句为其授权:

public Form1()
        {
            InitializeComponent();
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
        }

2.无法嵌入互操作类型,请改用适宜的接口。

解决办法:找到错误提示中对应的引用,右键选择属性,将嵌入互操作类型改为false。

ps:有时候会遇到有些引用并不存在,例如ESRI.ArcGIS.esriSystem,可以修改对应的System的互操作类型,并在using中加入ESRI.ArcGIS.esriSystem;

这样做的原因是:

1.”嵌入互操作类型”中的嵌入就是引进、导入的意思,类似于c#中using,c中include的作用,目的是告诉编译器是否要把互操作类型引入。
2.“互操作类型”实际是指一系列Com组件的程序集,是公共运行库中库文件,类似于编译好的类,接口等。
3.“嵌入互操作类型”设定为true,实际上就是不引入互操作集(编译时候放弃Com程序集),仅编译用户代码的程序集。而设定为false的话,实际就是需要从互操作程序集中获取 COM 类型的类型信息。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值