定期我得到以下异常:
无法加载DLL 'SQLite.Interop.dll':无法找到指定的模块。(异常来自HRESULT: 0x8007007E)
我使用的是1.0.82.0。在VS2010, Win7 64操作系统下使用nuget安装。
一旦异常开始出现,它就会不断出现——在调试和发布中,在VS内部或外部运行应用程序。
阻止它的唯一方法就是退出并重新登录。不抛出异常并加载dll。 它可以工作几天,但之后又会坏掉。
有人见过这样的情况吗,有解决方案吗?
定期我得到以下异常:
无法加载DLL 'SQLite.Interop.dll':无法找到指定的模块。(异常来自HRESULT: 0x8007007E)
我使用的是1.0.82.0。在VS2010, Win7 64操作系统下使用nuget安装。
一旦异常开始出现,它就会不断出现——在调试和发布中,在VS内部或外部运行应用程序。
阻止它的唯一方法就是退出并重新登录。不抛出异常并加载dll。 它可以工作几天,但之后又会坏掉。
有人见过这样的情况吗,有解决方案吗?
当前回答
我有这个问题,因为Visual c++ 2010可重分发没有安装在我的电脑。如果你还没有安装Visual c++ 2010 redistributable,下载并安装这个(检查x86或64 dll)。
其他回答
我尝试了几乎所有的解决方案,但没有任何运气。最终解决这个问题的方法是将我选择的平台对应的SQLite.Interop.dll的副本直接放在我的安装项目的根目录下。
我不知道为什么它起作用了,但它确实起了作用。
这里确实有很多答案,但我的答案简单明了,没有gac。
问题是,可执行文件需要一个正确的SQLite.Interop.dll (x86或x64)的副本来访问我们的数据库。
大多数架构都有层,在我的例子中,数据层有SQLite连接所需的DLL。
所以我简单地把一个后构建脚本到我的数据层解决方案和一切工作良好。
TL; diana;
在构建选项中将解决方案的所有项目设置为x86或x64。 使用SQLite nuget包将以下Post-Build-Script添加到项目中: /y . xcopy "$(TargetDir)x64" "$(SolutionDir)bin\Debug\
当然,您必须更改发布构建和x86构建的脚本。
STL; diana;
将SQLite.Interop.dll放在*.exe文件旁边。
如果您下载了正确的SQLite二进制文件,则根据项目构建选项将SQLite. interop .dll复制到您的发布或调试文件夹中。
我也有同样的问题。请遵循以下步骤:
确保你已经安装了System.Data.SQLite.Core包 来自NuGet的SQLite开发团队。 转到项目解决方案,并尝试在包文件夹内找到构建文件夹 检查您的项目框架并选择所需的SQLite.Interop.dll并将其放置在调试/发布文件夹中
参考
大会上会有竞争吗?检查DLL上是否有其他具有文件锁的应用程序。
如果是这个原因,使用Sysinternal的Process Explorer之类的工具来发现有问题的程序应该很容易。
HTH, 粘土