MapXtreme 安装、编码及打包注意事项
一、安裝時的問題
1、安裝失敗
有時候安裝Mapxtreme的時候,會有這樣的情況,軟件安裝進度條已經到了最后,好像馬上就完成,突然來個rollback,以迅雷不及掩耳盜鈴之勢回滾回去,然后提示軟件安裝失敗,至于為啥失敗又不說。 一開始我也被這個問題搞得焦頭爛額,甚至重裝系統也沒搞定,最后仔細排查之后,還是找到了原因:
1>如果系統安裝了iis服務,先卸載iis,然后安裝Mapxtreme,之后再把iis裝回去;
2>如果系統沒有安裝iis,這種情況很少見,但也碰到過,解決方法比較暈,先裝好iis,再裝Mapxteme,如果出現不能安裝,參考1>;
2、安裝后,在vs工具欄上找不到控件
Mapxtreme有2004、2005、2008等多個版本,分別對應不同版本的vs,Mapxtreme2004用在vs2003上,Mapxtreme2005用在vs2005上,Mapxtreme2008用在vs2008上,版本不對的話,Mapxtreme的控件是不會自動添加到vs的工具欄上的。
當然,我們都是熟悉在某個版本的vs里工作或者團隊使用統一版本的vs,不可能因為一個Mapxtreme而把開發工具給換了,這樣的話,可以右鍵點擊vs工具欄,點擊“選擇項”,然后選擇“.Net Framework 組件”頁,點擊"瀏覽"按鈕,找到Mapxtreme的安裝路徑(一般在"系統盤\Program Files\Common Files\MapInfo\MapXtreme\x.x",其中的x.x是Mapxtreme的實際版本,如Mapxtreme2005就是6.6), 添加需要的控件的DLL。
其中MapInfo.CoreEngine.dll中包含MapControl等等,MapInfo.Windows.Dialogs.dll中包含layerControl、MapToolBar等等;
二、使用中的問題
1、多線程編程,在創建地圖的線程之外的調用地圖控件出錯
其實這個不是Mapxtreme本身的問題,是.NET2.0和之后的版本里,不允許直接跨線程調用控件。至于解決方面,和普通的多線程調用控件是一樣的,如下:
地圖線程中代碼:
private void _update(object para1,object para2)
{
//實際地圖操作代碼
}
public delegate void MapUpdateDelegate(object para1,object para2);
public void UpdateMap(object para1,object para2)
{
if(mapControl1.InvokeRequired)
{
mapControl1.BeginInvoke(new MapUpdateDelegate(_update), new object[]{ para1, para2 });
}
else _update( para1, para2);
}
在需要的地方調用UpdateMap函數即可.
同理,當使用事件(event)時,如果有跨線程的情況,也需要這樣做。
2、Mapxtreme開發包時間限制的問題
Mapxtreme如果購買正版的話,開發包好像是10萬左右,如果需要多臺電腦上運行,還得加購許可,基本可以說絕了大部分開發方買正版的想法。如果用試用版,那就會有60天(還是45天?不太記得了,因為這個問題已經很久沒困擾我了,^_^)的使用限制,超過限制的時間后,即使卸載重裝也沒用,不能再進行開發。我的解決方法是,安裝一個全新的系統,裝好工作用的所有軟件,然后ghost備份,然后再裝Mapxtreme,超過時間限制了,直接還原,再裝,再用,再還原......。或者在網上搜一下Mapxtreme.lrc。
3、程序打包安裝
程序開發好了,自然得打包,方便客戶使用。可是,大概是用的是試用版的原因,無法直接用vs創建的打包程序自動打包。
一開始我使用Mapxtreme的時候,這個問題可是困擾了我很久,最后并排擺上兩個筆記本,一邊打包,一般測試安裝,相當于用窮舉法,硬是把這個打包給折騰了出來。
實際上Mapxtreme的打包還有更麻煩的,因為其有多個版本,各個版本文件版本、文件名什么的不一樣,就是說,每個版本的Mapxtreme都得有他自己的打包工程,不能通用。
轉載于:https://www.cnblogs.com/LiCL/archive/2013/02/25/HEIMU360-KB000007.html
總結
以上是生活随笔為你收集整理的MapXtreme 安装、编码及打包注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fedora 18 下安装 mplaye
- 下一篇: 统计学习方法 第一章 学习心得