SQLite 更新后:无法在 DLL 'SQLite.Interop.dll' 中找到名为 'sqlite3_changes_interop' 的入口点
Posted
技术标签:
【中文标题】SQLite 更新后:无法在 DLL \'SQLite.Interop.dll\' 中找到名为 \'sqlite3_changes_interop\' 的入口点【英文标题】:After SQLite update: Unable to find an entry point named 'sqlite3_changes_interop' in DLL 'SQLite.Interop.dll'SQLite 更新后:无法在 DLL 'SQLite.Interop.dll' 中找到名为 'sqlite3_changes_interop' 的入口点 【发布时间】:2013-01-02 00:42:33 【问题描述】:在我决定更新 SQLite DLL(从 1.0.82.0 到 1.0.84.0)之前,我的 C#/SQLite 工作正常。现在我遇到了这个崩溃:
无法在 DLL“SQLite.Interop.dll”中找到名为“sqlite3_changes_interop”的入口点
A first chance exception of type 'System.EntryPointNotFoundException' occurred in System.Data.SQLite.dll
System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical"><TraceIdentifier>http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled</TraceIdentifier><Description>Unhandled exception</Description><AppDomain>SparkleShare.vshost.exe</AppDomain><Exception><ExceptionType>System.EntryPointNotFoundException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>Unable to find an entry point named 'sqlite3_changes_interop' in DLL 'SQLite.Interop.dll'.</Message><StackTrace> at System.Data.SQLite.UnsafeNativeMethods.sqlite3_changes_interop(IntPtr db)
at System.Data.SQLite.SQLite3.get_Changes()
at System.Data.SQLite.SQLiteStatement.TryGetChanges(Int32&amp; changes)
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
代码没有改变,所以我不认为这是代码问题(here is the line 无论如何都会发生)。
我下载的新版本有问题吗?我在Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.0)
段落http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki下载了sqlite-netFx40-static-binary-Win32-2010-1.0.84.0.zip
编辑:我恢复到以前的 DLL,但问题仍然存在,可能是因为 Visual C# 在某处有一些缓存没有被清理。
【问题讨论】:
【参考方案1】:确保您项目的 x64 和 x86 文件夹中的 SQLite.Interop.dll 已更新到版本 1.0.84.0。
【讨论】:
而且您没有安装两个版本 - 这是我的问题。【参考方案2】:你有源代码控制吗?因此,您可以回滚文件的工作状态。
清理并构建您的解决方案,然后将您的 SQLite.Interop.DLL 设置为更新的副本。并确保它位于您的 bin 文件中。
问候
【讨论】:
是的,源代码、VS 项目和 DLL 都在 Git 上。在我写I reverted back to the previous DLLs
的EDIT
段落中,这意味着使用Git 进行还原。所以我确信它和以前的 DLL 是一样的。【参考方案3】:
您应该从 Nuget 包管理器更新 Sqlite 库。它对我有用。
【讨论】:
以上是关于SQLite 更新后:无法在 DLL 'SQLite.Interop.dll' 中找到名为 'sqlite3_changes_interop' 的入口点的主要内容,如果未能解决你的问题,请参考以下文章
SQLITE无法加载 DLL"SQLite.Interop.DLL";由于应用程序配置不正确,应用程序未能启动
NativeScript Vue nativescript-sqlite 无法分配给“#<Object>”的只读属性“exports”对象