Подтвердить что ты не робот

После обновления SQLite: невозможно найти точку входа с именем "sqlite3_changes_interop" в DLL "SQLite.Interop.dll"

Мой С#/SQLite работал нормально, пока я не решил обновить DLL SQLite (от 1.0.82.0 до 1.0.84.0). Теперь я получаю этот сбой:

Невозможно найти точку входа с именем "sqlite3_changes_interop" в 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()

Код не изменился, поэтому я не думаю, что это проблема с кодом (вот строка, где это происходит, в любом случае).

Что-то не так с новой версией, которую я загрузил? Я загрузил sqlite-netFx40-static-binary-Win32-2010-1.0.84.0.zip в абзаце Precompiled Statically-Linked Binaries for 32-bit Windows (.NET Framework 4.0) в http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

EDIT: я вернулся к предыдущим DLL, но проблема все еще происходит, возможно, потому, что в Visual С# есть кеш, который не очищается.

4b9b3361

Ответ 1

Убедитесь, что SQLite.Interop.dll в папках x64 и x86 вашего проекта обновлен до версии 1.0.84.0.

Ответ 2

У вас есть контроль над версиями? Таким образом, вы можете откатить файл в рабочем состоянии.

Очистите и создайте свое решение, а затем установите ваш SQLite.Interop.DLL как копию для более новой версии. и убедитесь, что он находится в файле bin.

С уважением

Ответ 3

Я приглашаю вас обновить библиотеки Sqlite из Nuget Package Manager. Это сработало для меня.