我在毛伊岛(.NET 7)创建了一个应用程序。现在我尝试更新到 .NET 8 并更新了所有 NuGet 包。 从现在开始,我无法打开与 SQLLite 内部数据库的连接
public const SQLite.SQLiteOpenFlags Flags =
SQLite.SQLiteOpenFlags.ReadWrite |
SQLite.SQLiteOpenFlags.Create |
SQLite.SQLiteOpenFlags.SharedCache;
string sPath = BCDataConstants.DatabasePath;
// value = /data/user/0/it.gattoneroph.photoapp/files/CAPhoto.db
// cames from => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "CAPhoto.db");
Database = new SQLiteAsyncConnection(sPath, Flags);
// no error but "System.TypeInitializationException: The type initializer for 'SQLite.SQLiteConnection' threw an exception." in ALL properties
CreateTableResult s= Database.CreateTableAsync<Tab_TabellaDatabase>().Result;
// here crashes
Win 11 + 模拟器 API 30 上的 VS 2022
.NET 8
NuGet 包
我能做什么?
尝试了我所知道的一切。
(编辑)
当我尝试创建表时的堆栈跟踪
11:07:55:509 [DOTNET] System.AggregateException:发生一个或多个错误。 (“SQLite.SQLiteConnection”的类型初始值设定项 抛出异常。) 11:07:55:509 [DOTNET] ---> System.TypeInitializationException:“SQLite.SQLiteConnection”的类型初始值设定项引发异常。 11:07:55:509 [DOTNET] ---> System.TypeLoadException: SQLitePCL.SQLite3Provider_e_sqlite3 类型的 VTable 设置失败 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnection..cctor() 11:07:55:509 [DOTNET] --- 内部异常堆栈跟踪结束 --- 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionWithLock..ctor(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.Entry..ctor(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.GetConnectionAndTransactionLock(SQLiteConnectionString 连接字符串、对象和事务锁) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.GetConnection(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteAsyncConnection.GetConnection() 11:07:55:509 [DOTNET] 在 SQLite.SQLiteAsyncConnection。<>c__DisplayClass33_0
1[[SQLite.CreateTableResult, SQLite-net, 版本=1.9.172.0,文化=中立, PublicKeyToken=null]].InnerInvoke() 11:07:55:509 [DOTNET] 在 System.Threading.Tasks.Task.<>c.<.cctor>b__281_0(对象 obj) 11:07:55:509 [DOTNET] 在 System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(线程 threadPoolThread,ExecutionContextexecutionContext,ContextCallback> 回调,对象状态) 11:07:55:509 [DOTNET] --- 前一个位置的堆栈跟踪结束 --- 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionWithLock..ctor(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.Entry..ctor(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.GetConnectionAndTransactionLock(SQLiteConnectionString> connectionString, Object& transactionLock) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.GetConnection(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteAsyncConnection.GetConnection() 11:07:55:509 [DOTNET] 在 SQLite.SQLiteAsyncConnection.get_Tracer() 11:07:55:509 [DOTNET] --- 内部异常堆栈跟踪结束 --- 11:07:55:509 [DOTNET] 在 System.Threading.Tasks.Task.ThrowIfExceptional(Boolean 包括任务取消异常) 11:07:55:509 [DOTNET] 在 System.Threading.Tasks.Task1[[SQLite.CreateTableResult, SQLite-net, Version=1.9.172.0, Culture=neutral, PublicKeyToken=null]].<WriteAsync>b__0() 11:07:55:509 [DOTNET] at System.Threading.Tasks.Task
1[[SQLite.CreateTableResult,SQLite-net, 版本=1.9.172.0,文化=中性,PublicKeyToken=null]].get_Result() 11:07:55:509 [DOTNET] 在 C:\Progetti 中的 PhotoApp.Classes.Database.BCDataConnection..ctor()1[[SQLite.CreateTableResult, SQLite-net, Version=1.9.172.0, Culture=neutral, PublicKeyToken=null]].GetResultCore(Boolean waitCompletionNotification) 11:07:55:509 [DOTNET] at System.Threading.Tasks.Task
现在表就创建成功了