最近在做GIS系统,当然是破解版的,由于前一个版本的地图功能是使用VectorDrawBox做的,后来用户要求使用MapInfo来做,为了能使现有用户自动升级到MapInfo版本,将所有依赖文件提取出来,用户不需要安装就能直接过渡到MapXtreme。看到这篇文章的朋友可以直接把这些文件连同exe拷给用户就可以使用了,完全绿色!
- 公用文件夹:C:\Program Files (x86)\Common Files\MapInfo\MapXtreme\7.0.0 中所有文件和文件夹
- 全局程序集缓存:C:\WINDOWS\Assembly\GAC_32(需要用命令行打开) 中所有以 Leadtools 或 MapInfo 开头的文件夹
- 字体文件夹:C:\Windows\Fonts(如果用到MapInfo专用字体,需要拷贝到项目目录,用代码来注册它)中所有以Mapinfo开头的字体
制作方法一:拷贝全部依赖文件,这种方法拷贝的文件多,但通用性强
- 全局程序集缓存中所有dll
- 公用文件夹中所有dll、 RasterGridHandlers 中所有文件
- 公用文件夹中下面3个文件
MAPINFOW.ABB
MapInfow.fnt(通用标记文件,没有它也能运行,但省会,首都等标记可能会不正常显示)
4.CustSymb文件夹(如果需要)
制作方法二:只拷贝项目需要的dll
- 备份公用文件夹
- 将全局程序集缓存中所有dll拷贝到公用文件夹
- 将VS项目中的MapInfo引用属性改为“复制本地=true”,生成项目(如果没有步骤2,会生成失败)
- 将备份文件夹中的dll拷贝到bin/debug
- 将公用文件夹\RasterGridHandlers 中所有文件拷贝到bin/debug
- 将公用文件夹中mapxtreme700.lic、MAPINFOW.ABB、MapInfow.fnt拷贝到bin/debug
- CustSymb文件夹(如果需要)
技巧
- 全局文件夹中的dll在各自不同的子文件夹中,拷贝出来比较麻烦,可以拷贝所有文件夹到一个临时文件夹中,然后搜索*.dll将他们列出来同一个窗口中便于复制
- Vtkdll.dll文件比较大,也没有发现起到什么作用,可以删除
- 如果地图中使用了MapInfo字体,需要将字体文件复制到程序目录,运行时检查是否已安装,注册字体可以参考这里http://www.cnblogs.com/top5/archive/2011/06/20/2084942.html
- 也可以到我的资源中下载绿色包