.Net 4.8 Winforms应用程序|SQLite-PCL|异常信息:System.TypeInitializationException|为什么?

8aqjt8rx  于 2023-05-18  发布在  SQLite
关注(0)|答案(1)|浏览(253)

我在.Net framework 4.8 Winforms应用程序中使用sqlite-net-pcl nuget包(版本1.8.116)。它似乎有一个.NET标准依赖项。
当从Visual Studio环境运行时,SQLite库初始化没有任何问题,并且库的必要读/写方面按预期工作。
但是,当部署到其他文件夹时,应用程序会引发未处理的异常。我的windows事件查看器提供以下信息。
异常信息:SQLitePCL.NativeLibrary.Load(System.String,System.Reflection.Assembly,Int32)处的System.Exception at SQLitePCL.Batteries_V2.MakeDynamic(System.String,Int32)at SQLitePCL.Batteries_V2.DoDynamic_cdecl(System.String,Int32)at SQLite.SQLiteConnection..cctor() 异常信息:SQLite.SQLiteConnectionPool+Entry.. ctor(SQLite.SQLiteConnectionString)at SQLite.SQLiteConnectionPool.GetConnectionAndTransactionLock(SQLite. SQLiteConnectionString,System.Object ByRef)at SQLite.SQLiteAsyncConnection+<>c__DisplayClass33_01SQLite.CreateTableResult, SQLite-net, Version=1.8.116.0, Culture=neutral, PublicKeyToken=null.b__0() at System.Threading.Tasks.Task` 1SQLite.CreateTableResult,SQLite-net,Version=1.8.116.0,Culture=neutral,PublicKeyToken=null.InnerInvoke()at System.Threading.Tasks.Task.Execute()
以下SQlite DLL文件位于部署文件夹中
SQLite-net.dll SQLitePCLRaw.batteries_v2.dll SQLitePCLRaw.nativelibrary.dll SQLitePCLRaw.provider.dynamic_cdecl.dll SQLitePCLRaw.core.dll
如何解决这个未处理的异常?

cgh8pdjw

cgh8pdjw1#

似乎我错过了/没有意识到额外的依赖项(库)。您将在应用程序bin文件夹中找到一个“runtimes”文件夹。在其中,您将找到每个相关系统平台的“e_sqlite3.dll”文件。
这个“runtimes”文件夹需要部署到您的部署目录(即“旁边”你的windows应用程序可执行文件)

相关问题