C#开发的GDAL程序部署遇到的问题 (无法加载 DLL“gdal_wrap” Unable to load DLL 'gdal_wrap')

来源:互联网 发布:图章制作软件在线 编辑:程序博客网 时间:2024/05/01 00:36
说明:
若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文件,再进行补全,常见的错误里,有:
  1. MSVCP80.dll,MSVCR80.dll:这表示需要安装Microsoft Visual C++ 2008 Redistrbutable Package
  2. 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


原创粉丝点击