我有一段时间让我的测试针对我的SQLite数据提供程序运行。
我查看了建议的链接here on stackoverflow,但似乎没有一条链接让我走上正确的道路。
我已下载了Windows Precompiled Binaries for sqlite3.dll
我已将sqlite3.dll复制到我的Sqlite\bin
目录以及我的Tests\bin
目录中
不幸的是,当我运行测试时,我收到以下错误
是否有明确的方法让我的Windows开发环境(现在的主要目标)以及在Android和IOS中运行(在不久的将来都需要)?
另外,如果重要的话,这是我的Sqlite项目引用。
答案 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)
当我添加以下库时,错误就消失了
答案 2 :(得分:0)
不能把它放在评论中,所以这就是我得到的:
另外,请查看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>