c#单元测试:无法加载DLL 'sqlite3':指定的模块无法找到

本文关键字:模块 sqlite3 加载 DLL 单元测试 | 更新日期: 2023-09-27 18:18:41

我开始尝试找出一些SQLite,我试图建立一个单元测试项目-但我似乎不能让它运行。我使用NuGet抓取以下内容:

  • SQLite。净PCL
  • sqlite-net
  • System.Data.SQLite

一切都编译得很好,但当我试图运行任何简单的初始化代码时,我得到:

无法加载DLL 'sqlite3':无法找到指定的模块。

现在我知道这意味着无法找到引用-我在这里遗漏了什么吗?谢谢你。

c#单元测试:无法加载DLL 'sqlite3':指定的模块无法找到

sqlite3是必需的外部非CLR dll。我的猜测是你从单元测试库引用你的项目,但不复制非托管的dll到单元测试的目录(甚至在你的主项目,取决于所使用的包,我不知道他们是否实际上包括dll)。

这里有一个关于类似问题的SO问题。因为你要部署到Android上,并在Windows上开发,所以你需要一个不同的版本来进行单元测试,而不是部署在Android应用程序上的版本。

无法加载DLL 'sqlite3':指定的模块无法找到

如果您查看引用的SO回答中的信息,您可以看到他们已经将sqlite3.dll文件复制到各自的bin目录中,以便托管包装器在需要时看到并调用它。