3

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

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

我已经下载了sqlite3.dll 的 Windows 预编译二进制文件

我已将 sqlite3.dll 复制到我的Sqlite\bin目录和Tests\bin目录 中dll复制到bin目录

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

测试失败

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

另外,如果重要的话,这里是我的 Sqlite 项目参考。

在此处输入图像描述

4

4 回答 4

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" ".\")
于 2013-10-19T23:37:46.803 回答
3

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

  1. Microsoft Visual C++ 运行时包 (V11.0)
  2. 适用于 Windows 运行时的 SQLite (V3.8.7.1)

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

于 2014-11-03T10:52:42.070 回答
0

不能把它放在评论中,所以这就是我得到的:在此处输入图像描述

另外,看看类似的问题

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

于 2013-10-16T23:28:39.150 回答
0

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

<Target Name="Ensure SQLite assemblies copied" AfterTargets="Build" Condition=" '$(Platform)' == 'x64' ">
  <Copy SourceFiles="$(OutDir)x64\SQLite.Interop.dll" DestinationFolder="$(OutDir)" />
</Target>
于 2017-10-07T21:47:25.923 回答