天天看点

ArcGIS Engine 项目10.1升级10.2一 10.1 到 10.2二 ArcGIS Engine 10 开发常见问题的解决方法

一 10.1 到 10.2

ArcGIS Engine 项目,相同代码,从10.1升级10.2;

首先是VS载入项目时窗体上的控件会出现问题;然后,如下面图,即可;

看下引用,已经出了问题;

ArcGIS Engine 项目10.1升级10.2一 10.1 到 10.2二 ArcGIS Engine 10 开发常见问题的解决方法

右击添加引用,或者添加ArcGIS 引用;

ArcGIS Engine 项目10.1升级10.2一 10.1 到 10.2二 ArcGIS Engine 10 开发常见问题的解决方法

添加ArcGIS引用;

ArcGIS Engine 项目10.1升级10.2一 10.1 到 10.2二 ArcGIS Engine 10 开发常见问题的解决方法

添加要引用的具体项;

ArcGIS Engine 项目10.1升级10.2一 10.1 到 10.2二 ArcGIS Engine 10 开发常见问题的解决方法

完成之后即可;

看下10.2所附带的一堆dll;

ArcGIS Engine 项目10.1升级10.2一 10.1 到 10.2二 ArcGIS Engine 10 开发常见问题的解决方法

每个DLL有一个XML,看下是干嘛的;是对该dll导出类的描述;

ArcGIS Engine 项目10.1升级10.2一 10.1 到 10.2二 ArcGIS Engine 10 开发常见问题的解决方法

二 ArcGIS Engine 10 开发常见问题的解决方法

http://www.cnblogs.com/RiseSoft/archive/2012/05/22/2512776.html

环境:Win7 64bit + VS2010 + AE10.0

Q1:You are not Licensed for 弹出提示框,点击确定,VS工程自动关闭!

Analysis: LicenseControl被我们拖入窗体中,由于使用SDE数据库,或者其他高级功能,仅授权Engine许可无法满足我们的需要,所以我们会通过右键属性,将其授权改成ArcInfo或者Engine Enterprise Geo等等,由此造成了上述问题!

Solution:在该窗体的初始化代码中添加如下代码,将授权更改为ArcInfo完全权限或其他。

复制代码

1         public MainForm()

2         {

3             InitializeComponent();

4             //解决LicenseControl右键属性改为ArcInfo或其他后总弹出"You are not Licensed for"然后VS自动关闭的问题

5             IAoInitialize pAoInitialize = new AoInitializeClass();

6             esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;

7             licenseStatus = pAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo);

8         }

复制代码

或者

复制代码

 1 IAoInitialize m_AoInitialize = new AoInitializeClass();

 2 esriLicenseStatus pLicesestatus = (esriLicenseStatus)m_AoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);

 3 if (pLicesestatus == esriLicenseStatus.esriLicenseAvailable)

 4 {

 5 if (pLicesestatus != esriLicenseStatus.esriLicenseCheckedOut)

 6 {

 7 pLicesestatus = (esriLicenseStatus)m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);

 8 }

 9 else

10 {

11 System.Windows.Forms.MessageBox.Show("程序初始化失败");

12 }

13 }

14 else

15 {

16 System.Windows.Forms.MessageBox.Show("没有程序运行许可");

17 }

复制代码

(需要把LicenseControl控件删除,如果LicenseControl中选择了Engine授权或包括Engine的多个授权,仍然只能读到Engine授权,否则在运行到CreatFeatureClass()等方法时还是会报错!)

-------------------------------------------------------------------------------------

Q2:ArcMap中无法启动编辑SDE中的图层。

Analysis:

Solution: 这个在ArcMap中会有提示如何解决,具体操作就是,打开Catolog,找对想要编辑的图层,右键点击“Register As Versioned...”

然后就可以在ArcMap中编辑了。 不过随之而来又会引起Q3.

-------------------------------------------------------------------------------------

Q3: 在调用IFeature.Store()等一些方法时又会报出组件异常错误(ComException)

Analysis:

Solution: 只能删除这个图层,重新建一个这样的图层了。。。Bug