C# 尝试在c中访问Sqlite数据库#

C# 尝试在c中访问Sqlite数据库#,c#,sqlite,C#,Sqlite,错误消息: 无法加载文件或程序集“System.Data.SQLite,Version=1.0.109.0,Culture=neutral,PublicKeyToken=db937bc2d44ff139”或其依赖项之一。试图加载格式不正确的程序 我在这个错误上搜索了很多,找到了一些解决这个问题的方法,但是没有一个能帮助我解决这个错误 当我编写代码以64位兼容性连接到Sqlite数据库时,一切都很顺利 但是我无法解决使用NuGet软件包使用的32位兼容性错误: using system.data.

错误消息:

无法加载文件或程序集“System.Data.SQLite,Version=1.0.109.0,Culture=neutral,PublicKeyToken=db937bc2d44ff139”或其依赖项之一。试图加载格式不正确的程序

我在这个错误上搜索了很多,找到了一些解决这个问题的方法,但是没有一个能帮助我解决这个错误

当我编写代码以64位兼容性连接到Sqlite数据库时,一切都很顺利 但是我无法解决使用NuGet软件包使用的32位兼容性错误:

using system.data.SQlite
我还无法编写大型代码,我只是计算Sqlite数据库表中的记录

任何帮助都将不胜感激

PS:很抱歉在同一个问题上添加了一个新的主题(如果我真的这么做的话)


如果我们将C#应用程序构建到x86程序集中,那么我们将在x64 Windows机器上运行它。我们会有问题的。在客户/目标64位机器上,由于启动进程的out可执行文件完全由托管代码组成,因此它将使用机器的本机处理器体系结构运行,即x64机器上的x64。稍后,这将导致包含为x86编译的任何本机代码的程序集(例如
System.Data.SQLite.dll
混合模式程序集、
SQLite.Interop.dll
本机互操作程序集或
sqlite3.dll
本机库)无法加载,通常会导致根据引发BadImageFormatException

您的项目文件夹结构:

<bin>\App.exe (required, managed-only application executable assembly)
<bin>\App.dll (optional, managed-only application library assembly)
<bin>\System.Data.SQLite.dll (required, managed-only core assembly)
<bin>\x86\SQLite.Interop.dll (required, x86 native interop assembly)
<bin>\x64\SQLite.Interop.dll (required, x64 native interop assembly)
\App.exe(必需、仅受管理的应用程序可执行程序集)
\App.dll(可选,仅受管理的应用程序库程序集)
\System.Data.SQLite.dll(必需,仅管理核心程序集)
\x86\SQLite.Interop.dll(必需,x86本机互操作程序集)
\x64\SQLite.Interop.dll(必需,x64本机互操作程序集)
编辑:

注意:您将在正在使用的.NET目标的二进制zip文件中找到互操作DLL

有用的参考资料:

(一)

(二)

(三)


4)

你有没有试着调查这件事。这似乎是一个可能的重复,我在
SQLite
中遇到了一个问题,我必须在引用了使用它的项目的项目中包含nuget包。Wpf应用程序引用了引用SQLite的类库。将SQLite添加到Wpf应用程序解决了这个问题。是的,我检查了解决方案是否有效,我将SQLite添加到了我的项目中,其工作状态良好,具有64位兼容性,但在32位兼容性中显示错误@fstam@user5377037我尝试了该线程的所有给定解决方案,但仍然没有得到解决方案首先感谢您的时间,我有一个问题,SQLite.Interop.dll对于x86和x64是相同的还是不同的?如果是,那么请提供链接给我下载它们,我们如何将相同的文件名放在同一个字典中?
SQLite.Interop.dll对于x86和x64将不同,目录也将不同。我编辑了答案see project structure.TREATED但仍不起作用…我做错了什么吗?…我刚刚在调试文件夹中创建了2个目录,名称为x86和x64,并且超过了其中的interop.dll…但仍然出现错误,请原谅我做错了什么,你需要自己检查一下,因为上面是你问题的解决方案。