Nicolas Raoul
Nicolas Raoul

Reputation: 60213

After SQLite update: Unable to find an entry point named 'sqlite3_changes_interop' in DLL 'SQLite.Interop.dll'

My C#/SQLite was working fine until I decided to update the SQLite DLLs (from 1.0.82.0 to 1.0.84.0). Now I get this crash:

Unable to find an entry point named 'sqlite3_changes_interop' in DLL 'SQLite.Interop.dll'

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()

The code has not changed, so I don't think it is a code problem (here is the line where it happens, anyway).

Is there something wrong with the new version I downloaded? I downloaded sqlite-netFx40-static-binary-Win32-2010-1.0.84.0.zip at the Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.0) paragraph at http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

EDIT: I reverted back to the previous DLLs, but the problem still happens, maybe because Visual C# has some cache somewhere that does not get cleaned.

Upvotes: 17

Views: 11776

Answers (3)

eayurt
eayurt

Reputation: 1177

I guest you should to update Sqlite libraries from Nuget Package Manager. It worked for me.

Upvotes: 1

BizApps
BizApps

Reputation: 6130

Do you have Source Control ? So you can rollback your file on its working state.

Clean and Build your solution then set your SQLite.Interop.DLL as copy to newer. and make sure that it is located on your bin file.

Regards

Upvotes: 0

Ronald van Maarseveen
Ronald van Maarseveen

Reputation: 136

Make sure that the SQLite.Interop.dll in both the x64 and the x86 folders of your project have been updated to version 1.0.84.0.

Upvotes: 12

Related Questions