天天看點

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