美文网首页Geomatics(GIS,GPS,RS,Surveying)
填坑 笔记三: SpatialiteSharp在Asp.NET的

填坑 笔记三: SpatialiteSharp在Asp.NET的

作者: brandonxiang | 来源:发表于2016-04-09 16:17 被阅读223次

    github源码在此,记得点星:
    https://github.com/brandonxiang/SpatialiteSharp

    SpatiliteSharp是一个Smartrak/SpatialiteSharp主持的项目,是一个为了方便在.net环境下配置并使用spatialite。如果你选择.net平台,同时选择spatialite空间数据库,那我极度建议用它。

    由于.net平台基本上就是微软平台,在配置环境变量上十分繁琐,所以SpatialiteSharp可以帮你下载Spatialite在.net上的x86和x64的版本dll,并通过代码配置对应的环境变量。

    总体来说,十分实用,但是,在ASP.Net平台上,由于微软在服务器路径上的繁琐,要改动一下源码。我当然事先issue了一下。在改动之后,路径将修改正确,一切功能正常使用。

    原本源码

    Environment.SetEnvironmentVariable("PATH", Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), Environment.Is64BitProcess ? "x64" : "x86", "spatialite") + ";" + Environment.GetEnvironmentVariable("PATH"));
    

    改动后

    var dllPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
    var spatialitePath = Path.Combine(dllPath, Environment.Is64BitProcess ? "x64" : "x86", "spatialite") + ";";
    var paths = Environment.GetEnvironmentVariable("PATH");
    Environment.SetEnvironmentVariable("PATH", spatialitePath + paths);
    

    或者

    var dllPath = AppDomain.CurrentDomain.BaseDirectory;
    var spatialitePath = Path.Combine(dllPath, Environment.Is64BitProcess ? "x64" : "x86", "spatialite") + ";";
    var paths = Environment.GetEnvironmentVariable("PATH");
    Environment.SetEnvironmentVariable("PATH", spatialitePath + paths);
    

    转载,请表明出处。总目录前端经验收集器

    相关文章

      网友评论

        本文标题:填坑 笔记三: SpatialiteSharp在Asp.NET的

        本文链接:https://www.haomeiwen.com/subject/xojvlttx.html