VS2017中gdal(C#)版的配置与测试

上次记录了直接在VS2017中下载并应用gdal的方法,这次来记录一下网上下载的安装包配置与测试的方法。

一、环境、版本及下载地址

win10,vs2017社区版,gdal2.4.4

还是像之前在Unity中应用gdal一样,最好是下载已经编译好的C#版的gdal,不然自己配置真的很容易出错,我就是这样的,下面提供不同版本的gdal下载地址:

1.GDAL2.4.4(C#版、64位):

2.GDAL2.4.4(C#版、32位):

3.GDAL3.0.4(C#版、64位):

4.GDAL3.0.4(C#版、32位):

本次选择GDAL2.4.4(C#版、64位)

二、gdal配置

1.下载后的gdal文件结构

(这个1是我从我的Unity那篇文章copy过来的,勿喷)

64位的2.4.4版本的gdal,下载之后如下:

vs2022配置使用gtest_vs2022配置使用gtest


解压之后,文件夹中文件的结构如下:

vs2022配置使用gtest_应用程序_02

所需要的dllbin文件夹bin/gdal/csharp文件夹,有时也会用到bin/gdal-data文件夹,但是本次并未涉及。

vs2022配置使用gtest_System_03


vs2022配置使用gtest_下载地址_04


2.环境配置

首先,新建一个名为GDALTextTwo的窗体应用程序;

vs2022配置使用gtest_vs2022配置使用gtest_05


将项目的Any CPU改成x64,这是因为gdal是64位的,要一一对应;

vs2022配置使用gtest_下载地址_06

找到项目所在文件夹下的项目所在文件夹\GDALTestTwo\bin\x64\Debug文件夹;

vs2022配置使用gtest_应用程序_07


找到GDAL所在文件夹\release-1911-x64-gdal-2-4-4-mapserver-7-4-3\bin\gdal\csharp文件夹下的 gdal_csharp.dll、gdal_wrap.dll、gdalconst_chsarp.dll、gdalconst_wrap.dll、ogr_csharp.dll、ogr_wrap.dll、osr_chsarp.dll、osr_wrap.dll 8个dll文件;

vs2022配置使用gtest_应用程序_08

将这8个dll文件复制到Debug文件夹下;

vs2022配置使用gtest_下载地址_09


找到GDAL所在文件夹\release-1911-x64-gdal-2-4-4-mapserver-7-4-3\bin文件夹;

vs2022配置使用gtest_System_10

将此文件夹内所有的dll文件,全部复制到Debug文件夹下,这是因为之前复制的那8个dll,对此bin文件夹内的dll有依赖关系。

vs2022配置使用gtest_应用程序_11


回到创建的项目,在引用上右击——添加引用——浏览,找到项目的Debug文件夹,将复制过去的 gdal_csharp.dll、gdalconst_chsarp.dll、ogr_csharp.dll、osr_chsarp.dll

vs2022配置使用gtest_应用程序_12


vs2022配置使用gtest_System_13


vs2022配置使用gtest_vs2022配置使用gtest_14

vs2022配置使用gtest_vs2022配置使用gtest_15

三、代码测试

代码如下:

在using OSGeo.GDAL;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GDALTestTwo
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());
            Gdal.AllRegister();
            Dataset ds = Gdal.Open(@"C:\Users\Administrator\Desktop\WCC\tin_TinRaste11.tif", Access.GA_ReadOnly);
            int w = ds.RasterXSize;
            int h = ds.RasterYSize;
            MessageBox.Show("image width=" + w + ",height=" + h);
        }
    }
}

 

运行,出现如下结果,说明配置成功。

vs2022配置使用gtest_应用程序_16


以上便是VS2017配置、应用gdal的第二个方法。