日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ArcGIS Engine控件运行许可学习总结

發布時間:2025/4/14 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ArcGIS Engine控件运行许可学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ArcGIS Engine控件運行許可



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);


http://blog.csdn.net/zhai56565/article/details/8116292/
========

ArcGIS 二次開發中的幾個小問題

問題一: IPoint point = new PointClass(); ? //顯示這一句有錯誤,錯誤提示為“IPoint point = new PointClass();”
解決辦法為:把ESRI.ArcGIS.Geometry的屬性中“嵌入互操作類型”改為“False”。OK!


?問題二: ?按照以下代碼,在VS窗體中加載mxd文檔,但是不能顯示。窗體顯示區為空白。?
? private void 加載地圖文檔ToolStripMenuItem_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? loadMapDocument();
? ? ? ? }
? ? ? ? //加載地圖文檔
? ? ? ? private void loadMapDocument()
? ? ? ? {
? ? ? ? ? ? System.Windows.Forms.OpenFileDialog openFileDialog;
? ? ? ? ? ? openFileDialog = new OpenFileDialog();
? ? ? ? ? ? openFileDialog.Title = "打開地圖文檔";
? ? ? ? ? ? openFileDialog.Filter = "map documents(*.mxd)|*.mxd";
? ? ? ? ? ? if (openFileDialog.ShowDialog() == DialogResult.OK)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? string filePath = openFileDialog.FileName;
? ? ? ? ? ? ? ? if (axMapControl1.CheckMxFile(filePath))
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? axMapControl1.MousePointer = esriControlsMousePointer.esriPointerHourglass;
? ? ? ? ? ? ? ? ? ? axMapControl1.LoadMxFile(filePath, 0, Type.Missing);
? ? ? ? ? ? ? ? ? ? axMapControl1.MousePointer = esriControlsMousePointer.esriPointerDefault;
? ? ? ? ? ? ? ? ? ? loadEagleEyeDocument(filePath);
? ? ? ? ? ? ? ? ? ? axMapControl1.Extent = axMapControl1.FullExtent;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? MessageBox.Show(filePath + "不是有效的地圖文檔");
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
解決方法為:
? ? ? ? public Form1()
? ? ? ? {
? ? ? ? ? ? ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
? ? ? ? ? ? ESRI.ArcGIS.RuntimeManager.BindLicense(ESRI.ArcGIS.ProductCode.Engine);?
? ? ? ? ? ? InitializeComponent();
? ? ? ? }
加上高亮顯示這行代碼之后,果斷能正常顯示。
========

錯誤:命名空間“ESRI.ArcGIS”中不存在類型或命名空間名稱“RuntimeManager”.是否缺少程序集引用



本來沒有添加有問題的這句代碼,運行報錯說ArcGIS not specified。然后網上搜了一下,都是說要添加這樣一句代碼。添加以后,編譯報錯:


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


我也在VS里面添加了AE相關空間的引用,“工具箱”可以顯示:


但是添加到窗體里面的控件有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
添加即可
========

ESRI.ArcGIS.RuntimeManager.Bind返回false解決方法



使用arcengine,電腦是X64系統時,ESRI.ArcGIS.RuntimeManager.Bind會返回false,將項目屬性的目標平臺設為X86即可,具體原因未知。http://forums.arcgis.com/threads/60805-
arcserver-licensing
========

總結

以上是生活随笔為你收集整理的ArcGIS Engine控件运行许可学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。