首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.DllNotFoundException on Mono SQLite

System.DllNotFoundException on Mono SQLite
EN

Stack Overflow用户
提问于 2014-01-22 20:18:22
回答 5查看 11.3K关注 0票数 9

我最近一直在想办法解决这个问题。它在我的Windows机器上工作,我从NuGet那里得到了NuGet,但是.

当我将System.Data.SQLite.dllSQLite.Interop.dll从我的Windows机器直接放到Linux服务器上时,它说找不到SQLite.Interop.dll,但我确信我看到的是可执行文件的下一个部分。

然后,我尝试用System.Data.SQLite.dll编译/p:UseInteropDll=false,但没有结果。这一次它说没有找到System.Data.SQLite.dll

什么是“找不到”的谜团?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-01-22 21:25:33

在Linux上使用Mono.Data.SQLite.dll。看看在Linux上使用SQLite在Mono上构建System.Data.SQLite.dll的Mono手册。

还可以映射DLL:

代码语言:javascript
复制
<configuration>
  <dllmap dll="sqlite" target="libsqlite.so.0" os="linux"/>
  <dllmap dll="sqlite" target="libsqlite.0.dylib" os="osx"/>
  <dllmap dll="sqlite3" target="libsqlite3.so.0" os="linux"/>
  <dllmap dll="sqlite3" target="libsqlite3.0.dylib" os="osx"/>
</configuration>
票数 8
EN

Stack Overflow用户

发布于 2017-04-02 20:31:05

没有代码更改的必要。你自己建吧。

  1. apt-get install build-essentials unzip
  2. 下载SQLITE源代码-您需要完整的源代码。目前被称为sqlite-netFx-full-source-1.0.104.0.zip
  3. unzipcd Source
  4. chmod +x compile-interop-assembly-release.sh构建shell脚本,然后运行./compile-interop-assembly-release.sh。-它将在.so目录中构建一个../bin文件。
  5. 将此.so文件复制到应用程序位于
  6. 正常运行您的应用程序。
  7. 注意:确保您的SQLite数据库和它所在的目录可以由您试图运行的用户写入。
票数 12
EN

Stack Overflow用户

发布于 2015-11-24 21:26:50

我在Windows中启动了开发,但随后将应用程序移到Mono (Ubuntu 14),这是SQLite提供程序无法按OP描述加载的地方。

我必须使用以下命令重新编译System.Data.SQLite.dll:

代码语言:javascript
复制
MSBuild System.Data.SQLite.2012.csproj /t:Rebuild /p:UseInteropDll=false /p:UseSqliteStandard=true 

然而,在此之后,我得到了以下例外:

提供程序没有返回ProviderManifest实例。方法System.Data.SQLite.UnsafeNativeMethods:GetSettingValue (string,string)' is inaccessible from methodSystem.Data.SQLite.EF6.SQLiteProviderManifest:GetProviderManifestToken (string)‘

要解决这个问题,我必须使用以下命令重新编译System.Data.SQLite.EF6.dll:

代码语言:javascript
复制
MSBuild System.Data.SQLite.EF6.2012.csproj /t:Rebuild /p:UseInteropDll=false /p:UseSqliteStandard=true

在将所有生成的文件复制到Mono项目的bin目录后,一切都正常。

我使用的SQLite提供程序源代码版本为1.0.98.1。

希望这能节省很多时间..。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21293105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档