说明:
若C#版本的程序部署失败:一般来说,如果相应的.netframework部署正常,GDAL库出现以下问题:
gdal_swap.dll或gdalXX.dll(xx为版本号)加载不上的问题;
“OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常 The type initializer for 'OSGeo.GDAL.GdalPINVOKE' threw an exception;
无法加载 DLL“gdal_wrap” Unable to load DLL 'gdal_wrap';
应使用Dependency Walker(绿色软件,可以去官网下载,
注意这个东西有X64和X86两个版本,不能混用)进行检查,检查调用的库中缺失了哪些DLL文件,再进行补全,常见的错误里,有:
- MSVCP80.dll,MSVCR80.dll:这表示需要安装Microsoft Visual C++ 2008 Redistrbutable Package
- MSVCP100.dll,MSVCR100.dll:这表示需要安装Microsoft Visual C++ 2010 Redistrbutable Package
另有一些较少见的DLL缺失或版本错误,包括msjava.dll,mpr.dll等,解决起来较为复杂,有些可能需要自己对库文件进行编译才能解决,将出错而且不需要的DLL文件在编译时排除掉
注:其实如果是使用网上下载的库文件出现这个问题,最好的解决方案是下载GDAL的源代码,自己编译一遍,自己编译的DLL绝大部分不会出现以上的错误,而且可以减少非常多的DLL(大部分功能平常其实是用不着的),编译也非常简单,具体过程可以参考我的另一篇文章http://blog.csdn.net/rrrrssss00/article/details/7106845