C# SQLite BackUpdatebase方法在升级到版本1.0.111.0后引发异常

C# SQLite BackUpdatebase方法在升级到版本1.0.111.0后引发异常,c#,vb.net,sqlite,system.data.sqlite,C#,Vb.net,Sqlite,System.data.sqlite,我正在将System.Data.SQLite从1.0.93.0版升级到1.0.111.0版 我有一个方法可以将磁盘上的SQLite数据库复制到内存中。它在1.0.93.0版本中运行良好,下面是VB.Net中的代码 Dim sourceConn = CType(_connection, System.Data.SQLite.SQLiteConnection) Dim destConn = CType(destDBM._connection, System.Data.SQLite.SQLiteCon

我正在将System.Data.SQLite从1.0.93.0版升级到1.0.111.0版

我有一个方法可以将磁盘上的SQLite数据库复制到内存中。它在1.0.93.0版本中运行良好,下面是VB.Net中的代码

Dim sourceConn = CType(_connection, System.Data.SQLite.SQLiteConnection)
Dim destConn = CType(destDBM._connection, System.Data.SQLite.SQLiteConnection)

sourceConn.BackupDatabase(destConn, "main", "main", -1, Nothing, 0)
其中目标SQLite的路径位于内存中,方法是使用”:memory:“而不是path

升级到版本1.0.111.0后,它抛出以下异常

代码=未知(-1),消息=System.Data.SQLite.SQLiteException(0x80004005):未知错误 未能初始化备份 在System.Data.SQLite.SQLite3.InitializeBackup(SQLiteConnection destCnn、String destName、String sourceName) 位于System.Data.SQLite.SQLiteConnection.BackUpdatebase(SQLiteConnection目的地、字符串目的地名称、字符串源名称、Int32页、SQLiteBackupCallback回调、Int32 RetryMillics)


有人知道如何解决这个问题吗?

我自己就能找到这个问题的根源。实际上,在备份之前,我正在目标数据库中启动一个事务。它在旧版本中运行良好,但在最新版本中行为发生了更改,异常毫无意义


为了解决这个问题,我重新排序了启动事务的代码,作为备份后的下一步。它现在的工作和预期的一样,在最新版本中插入速度太快了。SQLite团队的伟大工作

请查看更改日志,从1.0.93更改为1.0.111有5年的时间。有几个标记为“不兼容的更改”。我只想指出,必须关闭两个数据库的事务才能完成备份操作。否则,您将得到sqLite的“未知错误”!