ArcEngine10 中引用ESRI.ArcGIS.Framework.dll 出现异常解决

利用ArcEngine10编写地图符号化和利用颜色模板时,需要利用ESRI.ArcGIS.Framework.dll,但在编写代码:

     创建新符号:IStyleGalleryItem pStyleGalleryItem = new ESRI.ArcGIS.Framework.StyleGalleryItem()或者

     创建新颜色模块:IColorPalette pColorPalette = new ESRI.ArcGIS.Framework.ColorPalette();

代码不会出错,但在运行后就会出现异常: Additional information: 检索 COM 类工厂中 CLSID 为 {14746474-1534-11D3-9F49-00C04F6BC709} 的组件失败,原因是出现以下错误: 80040111 ClassFactory 无法供应请求的类 (异常来自 HRESULT:0x80040111 (CLASS_E_CLASSNOTAVAILABLE))(如下图)。


找了两天,原因终于明白:这是因为引用了一些只能在Desktop使用的类。IStyleGalleryItem和IColorPalette,还有IStyleSelector等,它们所在的命名空间就是ESRI.ArcGIS.Framework。既然是使用了Desktop的类,那么在引用这些只就必须安装Desktop了,所以解决方法就是在程序入口处需把ArcGIS Desktop进行与程序互动,即在Programe.cs(以C#为例)文件中,添加ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop);

如下图:

 

这样问题就解决,就可生成颜色模块了,运行后如下:


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值