gpt4 book ai didi

sqlite - 尝试在 Android 上的 .net MAUI 中建立 SQLite 连接时出现 FileNotFoundException

转载 作者:行者123 更新时间:2023-12-01 22:57:10 25 4
gpt4 key购买 nike

db = new SQLiteConnection(数据库路径);

上述语句在 Windows 上运行良好,但在 Android 上出现以下错误。它在两个平台上的 xamarin 表单中也运行良好。

System.IO.FileNotFoundException:“无法加载文件或程序集‘SQLitePCLRaw.provider.dynamic_cdecl,Version=2.0.4.976,Culture=neutral,PublicKeyToken=b68184102cba0b3b’或其依赖项之一。”

感谢您的帮助。

最佳答案

MAUI 项目中使用 sqlite 时需要注意一些事项。

1.确保您已经安装了以下 nuget 包:

 <ItemGroup>
<PackageReference Include="sqlite-net-pcl" Version="1.8.116" />
<PackageReference Include="SQLiteNetExtensions.Async" Version="2.1.0" />
<PackageReference Include="SQLitePCLRaw.core" Version="2.1.0-pre20220207221914" />
<PackageReference Include="SQLitePCLRaw.bundle_green" Version="2.1.0-pre20220207221914" />
<PackageReference Include="SQLitePCLRaw.provider.dynamic_cdecl" Version="2.1.0-pre20220207221914" />
<PackageReference Include="SQLitePCLRaw.provider.sqlite3" Version="2.1.0-pre20220207221914" />
</ItemGroup>

2.使用SQLiteAsyncConnection初始化数据库连接。

Database = new SQLiteAsyncConnection(Constants.DatabasePath, Constants.Flags);

然后像下面这样创建静态类常量:

 public static class Constants
{
public const string DatabaseFilename = "MySQLite.db3";
public const SQLite.SQLiteOpenFlags Flags =
SQLite.SQLiteOpenFlags.ReadWrite |
SQLite.SQLiteOpenFlags.Create |
SQLite.SQLiteOpenFlags.SharedCache;
public static string DatabasePath
{
get
{
var basePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
return Path.Combine(basePath, DatabaseFilename);
}
}
}

关于sqlite - 尝试在 Android 上的 .net MAUI 中建立 SQLite 连接时出现 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72755874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com