我知道这是一个相当老的问题,但我在自己研究了同样的问题后在谷歌中发现了这个,所以这意味着对于这个错误的搜索,这仍然是一个非常相关的更新页面,因为它仍然在前 5 名搜索相同问题时的大 G。
就我而言,引起共鸣的是“DeusExMachina25”和“Grzegorz Sławecki”的答案。
我正在编写一些使用 NUGet 上当前构建的“锐图”的软件(截至 2016 年 6 月 24 日),我的软件一直抛出与 OP 最初报告的相同的 gdal_wrap 消息,即使我正在使用Sharpmap 团队提供的 GDAL 包。
我没有意识到包的 NUGet 安装程序已经为我安装了一个配置类,但是在阅读了这个线程并发现它确实我去寻找它之后。
果然我在我的项目中找到了文件'GdalConfiguration.cs',并在我的项目中的适当位置添加了对它的调用,期望GDAL被正确初始化。
但是,在我这样做之后,我仍然遇到了同样的问题。
因此,我在已添加的 GDAL 例程的开头设置了一个断点,并一直等到断点被击中。
然后我通过该方法进行了跟踪,最终找到了以下行:
var gdalPath = Path.Combine(executingDirectory, "gdal");
在文件的第 64 行左右。
跟踪这个,我注意到正在构建的路径是:
d:\geodata\maptest\maptest\bin\debug\gdal
但是 NUGet 安装程序已将所有依赖程序集安装在
d:\geodata\maptest\maptest\bin\debug
正是我期望他们出现的地方。
我更改了第 64 行,使其现在变为:
var gdalPath = Path.Combine(executingDirectory, "");
瞧,错误消失了,一切都开始工作了。
我也可以用另一种方式做事,并创建一个名为 gdal 的文件夹,然后将所有内容复制到该文件夹中,但是当我对项目进行“清理”时,该文件夹将被删除。
由于配置类,设置基于此路径的各种环境变量,快速更改这一行也修复了 GDAL 数据文件、插件和其他一些东西的路径。