目标

使用.netcore项目在Linux上运行sqlite

环境

.netcore2.1 / centos7 / win10 / vs2017 / sqlite3

sqlite库还是这个System.Data.SQLite.dll ,是.net core版本的.

下载地址http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

sqlite数据库文件是使用sqlitestudio工具在win10上建立.然后复制到centos

问题

一.使用sqlite官方提供的.net standard库

使用Nuget包管理器下载下面版本后,运行失败,找不到sqlite库的路径

研究后发现.netcore项目将nuget下载的包统一放在了c:/user/用户名/.nuget/packages 这个目录下.

项目生成目录下的 .runtimeconfig.dev.json 文件记录了上面那个路径 .deps.json文件记录了相关的包依赖关系.仔细查看路径后,发现并没有错误.但是程序就是找不到包.

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Data.SQLite, Version=1.0.109.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139'. The system cannot find the file specified.

无奈之下,使用了的添加引用的传统方法.将System.Data.SQLite.dll添加引用到项目中

结果不报错了,但是执行SQL时失败了.日志显示找不到依赖包

Unable to load shared library 'SQLite.Interop.dll' or one of its dependencies.

这个dll分不同的系统平台和.net适用版本,在nuget下载的包中可以找到对应的版本

尝试将win64版本的.net standard2.0的该dll复制到win10系统的该项目运行目录下.结果运行成功了.

然后换到centos上执行

将项目运行目录下的文件复制到centos下,SQLite.Interop.dll这个要用linux64版本.结果运行成功.

二.使用微软的sqlite库

下载nuget包

使用这个包没有遇到任何问题.sqlite数据库读取成功了.

但问题来了.为什么微软自家开发的sqlite要比sqlite官方为.net开发的库要少一些坑呢?

.Net Core实践2 sqlite的更多相关文章

  1. .net core实践系列之SSO-跨域实现

    前言 接着上篇的<.net core实践系列之SSO-同域实现>,这次来聊聊SSO跨域的实现方式.这次虽说是.net core实践,但是核心点使用jquery居多. 建议看这篇文章的朋友可 ...

  2. .net core实践系列之短信服务-目录

    前言 经过两周多的业余时间,终于把该系列的文章写完了.第一次写系列,可能部分关键点并没有覆盖到,如果有疑问的朋友可以随时反馈给我.另外也感谢在我发布文章时给予我方案建议与反馈源码BUG的朋友们.下面是 ...

  3. .net core实践系列之短信服务-架构设计

    前言 上篇<.net core实践系列之短信服务-为什么选择.net core(开篇)>简单的介绍了(水了一篇).net core.这次针对短信服务的架构设计和技术栈的简析. 源码地址:h ...

  4. .net core实践系列之短信服务-Sikiro.SMS.Api服务的实现

    前言 上篇<.net core实践系列之短信服务-架构设计>介绍了我对短信服务的架构设计,同时针对场景解析了我的设计理念.本篇继续讲解Api服务的实现过程. 源码地址:https://gi ...

  5. .net core实践系列之短信服务-Api的SDK的实现与测试

    前言 上一篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>讲解了API的设计与实现,本篇主要讲解编写接口的SDK编写还有API的测试. 或许有些人会认为, ...

  6. .net core实践系列之短信服务-Sikiro.SMS.Bus服务的实现

    前言 前两篇<.net core实践系列之短信服务-Sikiro.SMS.Api服务的实现>.<.net core实践系列之短信服务-Api的SDK的实现与测试>分别讲解了AP ...

  7. ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 配置 EF SQLite 支持 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 EF SQLite 支持 上一章节我有提 ...

  8. .Net Core实践1

    实践目标 编写经典的hello world程序.使用.netcore框架,然后运行在linux上. .netcore目前已经是2.1版本了,可以简单的认为是一种跨平台的.net framework,除 ...

  9. .net core实践系列之SSO-同域实现

    前言 SSO的系列还是以.Net Core作为实践例子与大家分享,SSO在Web方面复杂度分同域与跨域.本篇先分享同域的设计与实现,跨域将在下篇与大家分享. 如有需要调试demo的,可把SSO项目部署 ...

随机推荐

  1. SuperMap iClient 如何使用 WMTS 地图服务(转载)

    原文链接: WMTS服务初步理解与读取 https://blog.csdn.net/supermapsupport/article/details/76806670 SuperMap iClient ...

  2. C#自定义FTP访问类的代码

    如下资料是关于C#自定义FTP访问类的代码,应该对各朋友有帮助. using System; using System.Collections.Generic; using System.Text; ...

  3. linux快捷进入长目录的方法

    快捷命令   :alias chaoyang ='cd /usr/lib/uu/hh/lib' 1.将上述设置写到家目录的.bashrc文件中(~/.bashrc) 2.然后source ./bash ...

  4. sed 查找文件的某一行内容

    1,查找文件text中第三行的内容 命令: sed -n '3p' text 2,查找文件text中第二行到第四行的内容 命令: sed -n '2,4p' text

  5. SQL根据细粒度为天的查询

    当我们集成了一些前端框架,在某些展示页面上往往具有某些查询条件.而这其中日期查询的处理又较为麻烦,此处,我罗列了一种当前台上传了一种默认的date格式的日期查询数据至后台未经Controller或Se ...

  6. Kafka相关内容总结(存储和性能)

    Kafka消息的存储 Kafka的设计基于一种非常简单的指导思想:不是要在内存中保存尽可能多的数据,在需要时将这些数据刷新(flush)到文件系统,而是要做完全相反的事情.所有数据都要立即写入文件系统 ...

  7. anaconda --包管理和环境管理器

    前言: 以下所有的命令都Win10环境的 Anaconda Prompt 中 环境管理 创建虚拟环境 conda create --name env_name python 也可以指定 Python ...

  8. 数字信号处理专题(1)——DDS函数发生器环路Demo

    一.前言 会FPGA硬件描述语言.设计思想和接口协议,掌握些基本的算法是非常重要的,因此开设本专题探讨些基于AD DA数字信号处理系统的一些简单算法,在数字通信 信号分析与检测等领域都会或多或少有应用 ...

  9. Saltstack_使用指南06_远程执行-指定目标

    1. 主机规划 Targeting Minions文档 https://docs.saltstack.com/en/latest/contents.html 另请参见:自动化运维神器之saltstac ...

  10. Python Docker 查看私有仓库镜像【转】

    文章来源:python Docker 查看私有仓库镜像 pip 安装: # 首先安装epel扩展源: yum -y install epel-release # 更新完成之后,就可安装pip: yum ...