基于C#的ArcEngine二次开发47:Addins常见问题解决方案集锦

目录

1.arcgis  自定义工具中找不到Addin control

2.addin 断点无法调试:提示当前不会命中断点,还没有为该文档加载任何符号

3:Unable to create .esriAddin; missing ESRI ArcGIS Add-in SDK component(s).  

4 The operation cannot be performed on a non-simple geometry.

5 ArcMap并不包含Editor的定义


1.arcgis  自定义工具中找不到Addin control

 解决办法:是由于创建的addin程序的.netFramework版本不一致导致,设置为一致即可

基于C#的ArcEngine二次开发47:Addins常见问题解决方案集锦_第1张图片

2.addin 断点无法调试:提示当前不会命中断点,还没有为该文档加载任何符号

 解决办法:ESRI系列的软件启动时默认并不支持.NET4.0,而是.NET2.0,所以需要修改arcgis安装目录下的的bin下面的文件

基于C#的ArcEngine二次开发47:Addins常见问题解决方案集锦_第2张图片

3 Unable to create .esriAddin; missing ESRI ArcGIS Add-in SDK component(s).  

解决办法:

  打开.csproj项目文件,修改如图位置:添加 .11

基于C#的ArcEngine二次开发47:Addins常见问题解决方案集锦_第3张图片

4 The operation cannot be performed on a non-simple geometry.

问题描述:

在调用的ITopologicalOperator.Cut()函数时,报了如下错误:

基于C#的ArcEngine二次开发47:Addins常见问题解决方案集锦_第4张图片

为什么我返回的geometry不是简单的几何呢?

本人猜测是因为返回来的坐标顺序的问题,即你是逆时针绘制图形还是顺时针绘制图形的问题,故造成虽然你绘制了几何图形,但是实际上连接顺序不一致。

解决方案:

对你传入的geometry进行检查,在你应用此geometry之前应该执行此代码:

((ITopologicalOperator)pGeometry).Simplify();
  • 简单解释下此代码的意思,其实很简单就是将你的geometry强制转换为简单的几何。
  • ITopologicalOperator接口的介绍:https://blog.csdn.net/sydbc/article/details/17710235

5 ArcMap并不包含Editor的定义

错误原因:在程序中使用了如下语句

IEditor pEditor = ArcMap.Editor;

解决方案:将上述语句修改为

IEditor pEditor = ArcMap.Application.FindByExtensionByName("ESRI Object Editor")  as IEditor;

 

你可能感兴趣的:(基于C#的ArcEngine二次开发47:Addins常见问题解决方案集锦)