GDAL C# “OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常 解决方法

114 篇文章 239 订阅
7 篇文章 3 订阅

        在使用C#版本的GDAL开发的时候,编译正常,启动的时候就会提示:“OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常。

        对于这个问题,原因主要就是没有找到dll导致的,在使用的时候不但要把C#的那八个dll拷贝到exe所在目录,还需要把gdal19.dll及其依赖的dll都拷贝过去,很多同学以为只要有了那八个C#版本的dll就ok了,其实是不对的,C#版本的8个dll只是导出了C#的接口而已,调用的还是C++版本的gdal库。

        对于Python版本也是一样,需要将gdal19.dll及其依赖的dll全部拷贝到python的安装目录下。


————————华丽的分割线,下面2012-12-14日添加————————————————

       在使用C#的版本的时候一定要注意编译GDAL的时候用的编译器和版本,比如你下载的GDAL的用VS2008编译的32位的dll,那么在C#中使用的时候先要安装Visual Studio2008的C++运行库,具体可以去微软的官方搜(注意VS的版本也有好多,有SP1的版本,还有没有打过SP的版本,运行库都不一样)。完成了这些步骤,建议使用GDAL的那些exe工具测试一下,双击其中一个,如果可以弹出帮助信息说明OK,如果不行请继续找对应的C++运行库。

      上面只是说明GDAL在你的系统中可以正常工作,下面是在使用C#调用的时候,需要把配置管理器中的anycpu进行修改,如果GDAL是32位的,那么这里需要创建一个X86的,如果是64位的,创建一个X64的,切忌一定要对应,否则就会引发一些异常,比如下面的图片所示。


  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
### 回答1: "Osgeo.gdal.gdalpinvoke"的类型初始值设定引发异常,一般是由以下几个原因引起的: 1. 缺少GDAL安装:如果没有正确安装GDAL库,该异常可能会被触发。请确保已经正确安装了GDAL库,并且相应的GDAL.dll文件位于正确的路径下。 2. 版本不兼容:如果使用的GDAL库的版本与代码中的版本不兼容,也会引发异常。请检查代码中对GDAL库的引用以及所使用的GDAL库的版本,确保它们是兼容的。 3. 缺少依赖GDAL库可能依赖其他一些库文件或组件,如果缺少了这些依赖,也可能导致该异常。请检查系统中是否已正确安装了所需的依赖,并确保它们是最新的、完整的版本。 4. 环境配置错误:有时,异常可能是由于环境配置错误所致。检查是否设置了正确的环境变量,并且GDAL库的路径能够正确被找到。 如果经过以上检查后仍然无法解决异常,建议参考GDAL官方文档或寻求相关开发者社区的帮助,以获取更具体的解决方案。 ### 回答2: "osgeo.gdal.gdalpinvoke"的类型初始值设定引发异常,可能是由于以下几个原因引起的: 1. GDAL库未正确安装:首先,请确保您已经正确安装了GDAL库。检查您的环境变量是否正确设置,并且库文件位于正确的路径下。 2. 版本不匹配:如果您的应用程序中使用的GDAL库版本与您安装的版本不匹配,可能会引发异常。请确保您的应用程序和GDAL库的版本一致。 3. 缺少依赖GDAL库可能依赖于其他一些库或组件。请确保您在安装GDAL库时已经安装了所有的依赖,并且它们也正确地设置在环境变量中。 4. 平台不匹配:如果您的应用程序和GDAL库是在不同的平台上编译的,例如一个是在32位平台上编译,另一个是在64位平台上编译,可能会导致该异常。请确保您的应用程序和GDAL库的平台一致。 5. 资源冲突:如果您在应用程序中同时使用了其他库,可能会存在资源冲突导致该异常。请确保您的应用程序中没有其他库与GDAL库产生冲突。 如果以上方法都无法解决异常,建议您查看异常的详细信息以获取更多的线索,并参考GDAL库的官方文档或社区来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值