ArcGIS Engine控制項執行許可學習總結

2021-07-25 14:54:00 字數 3716 閱讀 8958

runtime繫結:

在arcgis engine10.0中,許可方式發生了一定的變化,arcgis10有乙個新的要求---runtime繫結。就是在任何arcobjects**(包括許可初始化**)被執行前,指定相稱的arcgis產品---

arcgis desktop或者arcgis engine應用程式。

建立runtime繫結的apis位於程式集esri.arcgis.version的類esri.arcgis.runtimemanager中,該程式集隨著任何arcgis10 runtime一起安裝於全域性程式集快取(global assembly 

cache(gac))中。安裝了arcobjects.netsdk,預設的程式集esri.arcgis.version位於c:/program files/arcgis/developerkit10.0/dotnet資料夾下。可以在visualstudio ide中將該程式集添

加為專案引用。

利用licensecontrol將arcgis9.3應用程式遷移至arcgis10:

使用licensecontrol,遷移arcgis 9.3desktop或者engine應用程式至arcgis 10,執行以下步驟:

1、  安裝arcobjects.netsdk;

2、  公升級visualstudio的專案至visual studio 2008或以上版本;

3、  確保設定所有esri程式集的specificversion屬性為false;

4、  加esri.arcgis.version程式集至專案;

5、  加esri.arcgis.adf.local程式集至專案;

6、  在使用其他任何arcobjects**之前,新增下面的**語句:

[c#]中:

esri.arcgis.runtimemanager.bind(esri.arcgis.productcode.engine);

[vb.net]中:

esri.arcgis.runtimemanager.bind(esri.arcgis.productcode.engine);

利用esri.arcgis.esrisystem.aoinitialize類將arcgis9.3應用程式遷移至arcgis 10:

在**中使用esri.arcgis.esrisystem.iaoinitialize類也可以執行runtime繫結。有兩種方法,步驟分別為:

手工編寫runtime繫結**方案步驟:

1、  安裝arcobjects.netsdk;

2、  公升級visualstudio的專案至visual studio 2008或以上版本;

3、  確保設定所有esri程式集的specificversion屬性為false;

4、  加esri.arcgis.version程式集至專案;

5、  加esri.arcgis.adf.local程式集至專案;

6、  在使用其他任何arcobjects**之前,新增下面的**語句:

[c#]中:

esri.arcgis.runtimemanager.bind(esri.arcgis.productcode.engine);

[vb.net]中:

esri.arcgis.runtimemanager.bind(esri.arcgis.productcode.engine);

利用arcgislicense initializer wizard生成runtime繫結**步驟:

1、  安裝arcobjects.net sdk;

2、  公升級visualstudio的專案至visual studio 2008或以上版本;

3、  確保設定所有esri程式集的specificversion屬性為false;

4、  加esri.arcgis.version程式集至專案;

5、  加esri.arcgis.adf.local程式集至專案;

6、  在visual studio中通過add arcgis license checking命令,執行arcgis licenseinitialzer wizard。

儘管在開發arcgis 9.3專案時執行過arcgis license initialzer,遷移至arcgis 10時仍然需要再次執行arcgislicense initializer,因為arcgis license initializer生成的**有些已經

被改變了,如下圖

7、  在使用其他任何arcobjects**之前,新增下面的**語句:

[c#]中:

esri.arcgis.runtimemanager.bind(esri.arcgis.productcode.engine);

[vb.net]中:

esri.arcgis.runtimemanager.bind(esri.arcgis.productcode.engine);

*****===

問題一: ipoint point = new pointclass();   //顯示這一句有錯誤,錯誤提示為「ipoint point = new pointclass();」

解決辦法為:把esri.arcgis.geometry的屬性中「嵌入互操作型別」改為「false」。ok!

問題二:  按照以下**,在vs窗體中載入mxd文件,但是不能顯示。窗體顯示區為空白。 

private void 載入地**檔toolstripmenuitem_click(object sender, eventargs e)

//載入地**檔

private void loadmapdocument()

else}}

解決方法為:

public form1()

加上高亮顯示這行**之後,果斷能正常顯示。

*****===

本來沒有新增有問題的這句**,執行報錯說arcgis not specified。然後網上搜了一下,都是說要新增這樣一句**。新增以後,編譯報錯:

最初懷疑是ae沒有安裝好,但是查了一下arcgis管理器,是可以的呀:

但是新增到窗體裡面的控制項有note,提示我需要arcgis的product license

我也遇到過這個問題,我新增了esri.arcgis.version引用後問題就解決了,你可以試試。

從「工具箱」→「arcgis windows forms」中選擇控制項「licensecontrol」控制項,拖到視窗中,系統會自動為程式新增需要的引用,等待數秒,這個錯誤就可以解決

我也遇到過這個問題,我新增了esri.arcgis.version引用後問題就解決了,你可以試試。

為什麼我的沒有arcgis.version的引用

我也沒有這個dll,怎麼回事啊

應該是版本問題,估計9.x的沒有,新版本有。

新增了esri.arcgis.version引用

我發現把這句給注釋掉就可以執行了。

為什麼我的vs2008裡面在新增引用的時候,看不到esri.arcgis.version呢?先裝的vs,後裝的arcgis,這個怎麼能?望指導

esri.arcgis.version.dll,新增引用時瀏覽到以下位置:

c:\program files (x86)\common files\arcgis\bin

新增即可

*****===

使用arcengine,電腦是x64系統時,esri.arcgis.runtimemanager.bind會返回false,將專案屬性的目標平台設為x86即可,具體原因未知。

arcserver-licensing

*****===

ArcGIS Engine 編輯介紹

原文 arcgis engine 編輯介紹 iworkspaceedit介面是arcgis engine 實現空間資料編輯的重要介面,它讓程式啟動或者停止乙個編輯流程,在這個編輯流程內,可以對資料庫中的資料進行刪除,新增,更改。我們所有的對要素或者屬性的修改都可以放到乙個會話中,這個會話就相當於ar...

ArcGIS Engine 相關資料

1 arcgis engine c 例項開發教程 教程目錄 第一講 桌面gis應用程式框架的建立 第二講 選單的新增及其實現 第三講 mapcontrol與pagelayoutcontrol同步 第四講 狀態列資訊的新增與實現 第五講 鷹眼的實現 第六講 右鍵選單新增與實現 教程bug及優化方案1 ...

ArcGIS Engine 相關資料

1 arcgis engine c 例項開發教程 教程目錄 第一講 桌面gis應用程式框架的建立 第二講 選單的新增及其實現 第三講 mapcontrol與pagelayoutcontrol同步 第四講 狀態列資訊的新增與實現 第五講 鷹眼的實現 第六講 右鍵選單新增與實現 教程bug及優化方案1 ...