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

时间:2013-10-16 20:06:40

标签: c# dll sqlite

我有一段时间让我的测试针对我的SQLite数据提供程序运行。

我查看了建议的链接here on stackoverflow,但似乎没有一条链接让我走上正确的道路。

我已下载了Windows Precompiled Binaries for sqlite3.dll

我已将sqlite3.dll复制到我的Sqlite\bin目录以及我的Tests\bin目录中 dll copied into bin directories

不幸的是,当我运行测试时,我收到以下错误

failed test

是否有明确的方法让我的Windows开发环境(现在的主要目标)以及在Android和IOS中运行(在不久的将来都需要)?

另外,如果重要的话,这是我的Sqlite项目引用。

enter image description here

4 个答案:

答案 0 :(得分:5)

所以对我来说答案很简单。我连接了一个Pre-Build事件,它检查机器的体系结构,并将相应的dll复制到输出bin目录中。

现在我们团队中的任何人都可以只运行REBUILD,并且可以使用正确的dll来运行SQLite。

if '$(PROCESSOR_ARCHITECTURE)'=='AMD64' (xcopy /y "$(ProjectDir)x64\sqlite3.dll" ".\") 
if '$(PROCESSOR_ARCHITECTURE)'=='x86' (xcopy /y "$(ProjectDir)x86\sqlite3.dll" ".\")
if '$(PROCESSOR_ARCHITEW6432)'=='AMD64' (xcopy /y "$(ProjectDir)x64\sqlite3.dll" ".\")

答案 1 :(得分:2)

当我添加以下库时,错误就消失了

  1. Microsoft Visual C ++运行时包(V11.0)
  2. SQLite for Windows Runtime(V3.8.7.1)
  3. When I add the following libraries the error went away

答案 2 :(得分:0)

不能把它放在评论中,所以这就是我得到的:enter image description here

另外,请查看Similar problem

最后,但并非最不重要的是,您是否尝试添加对SQLite.Inetrop.dll的引用(在引用中)? 参考文献 - >添加 - >只需浏览到您的SQLite所在的位置,选择查看全部,并添加对Interop.dll的引用)

答案 3 :(得分:0)

我正在使用VS2017并通过添加以下任务来解决问题以复制程序集。

<Target Name="Ensure SQLite assemblies copied" AfterTargets="Build" Condition=" '$(Platform)' == 'x64' ">
  <Copy SourceFiles="$(OutDir)x64\SQLite.Interop.dll" DestinationFolder="$(OutDir)" />
</Target>
相关问题