15

在我决定更新 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;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()

代码没有改变,所以我认为这不是代码问题(无论如何,这是发生的那一行)。

我下载的新版本有问题吗?我在http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wikisqlite-netFx40-static-binary-Win32-2010-1.0.84.0.zipPrecompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.0)段落下载了

编辑:我恢复到以前的 DLL,但问题仍然存在,可能是因为 Visual C# 在某处有一些缓存没有被清理。

4

3 回答 3

11

确保项目的 x64 和 x86 文件夹中的 SQLite.Interop.dll 已更新到版本 1.0.84.0。

于 2013-01-28T01:40:30.307 回答
0

你有源代码控制吗?因此,您可以将文件回滚到其工作状态。

清理并构建您的解决方案,然后将您的 SQLite.Interop.DLL 设置为更新的副本。并确保它位于您的 bin 文件中。

问候

于 2013-01-28T02:35:01.983 回答
0

我邀请您从 Nuget 包管理器更新 Sqlite 库。它对我有用。

于 2018-02-07T07:38:55.470 回答