private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
              OSGeo.GDAL.Gdal.AllRegister();
                OSGeo.GDAL.Dataset dataSet = OSGeo.GDAL.Gdal.Open(@"E:\Skyline\Maps\srtm_59_05.strm_59_05.tif", OSGeo.GDAL.Access.GA_ReadOnly);
                int w = dataSet.RasterXSize;
                int h = dataSet.RasterYSize;
                this.tb1.Text = w.ToString();
                this.tb2.Text = h.ToString();
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            } 
        }
当程序运行到OSGeo.GDAL.Gdal.AllRegister();时就会抛出如下异常:
在 System.DllNotFoundException 中第一次偶然出现的“gdal_csharp.dll”类型的异常
在 System.TypeInitializationException 中第一次偶然出现的“gdal_csharp.dll”类型的异常
在 System.TypeInitializationException 中第一次偶然出现的“gdal_csharp.dll”类型的异常
在 System.TypeInitializationException 中第一次偶然出现的“CSharp.exe”类型的异常
请问各位问题出在什么地方?

解决方案 »

  1.   

    Gdal库加载的问题,应该是DLL不全,bin里面应该有gdal_csharp.dll、gdal_wrap.dll、gdalconst_csharp.dll、 gdalconst_wrap.dll、ogr_csharp.dll、ogr_wrap.dll、osr_csharp.dll、 osr_wrap.dll,楼主再找找最新的工程代码
      

  2.   

    在解决方案中,右键点“引用”--》“添加引用”--》“浏览”,找到gdal_csharp.dll;gdalconst_charp.dll;mapscritpt_csharp.dll;ogr_csharp.dll;osr_csharp.dll;然后运行,应该可以解决问题。如果你是64位机器,需要“项目”-》“项目属性”---》生成---》“目标平台”选x86
    如果还不行,建议你安装FWTools,安装目录中的csharp文件夹有所需的dll文件,把引用中的文件换了就可以了!
      

  3.   

    把你的GDAL所有编译出来的文件(8个)拷贝到应用程序运行目录下,即bin\Debug   or   bin\release下,这个问题就解决了,估计你添加库的时候选择复制的本地,但是那几个wrap库没有复制过来,所以就出这个问题了