c# - 应该使用哪个“sqlite”在使用 Visual Studio for Mac 在 MacO 上构建应用程序?
问题描述
我正在通过 Visual Studio 和“sqlite”移植在 UWP、Android 和 iOS 上正确运行的应用程序代码:
对于 UWP -> Windows 10 和 Microsoft.Data.Sqlite 上的 Visual Studio --- 对于 Android -> Windows 10 和 Mono.Data.Sqlite 上的 Visual Studio --- 对于 iOS -> Visual Studio For Mac 和 Mono.Data.Sqlite
这些中的每一个都在实际设备上构建和运行,而不仅仅是模拟器。在撰写本文时,所有工具都是最新的。
我尝试从 MacO 上的应用程序运行非常基本的启动数据库代码,但出现如下所示的错误。
编码:
using Mono.Data.Sqlite; // iOS version of code
public class AppDelegate : NSApplicationDelegate
{
public override void DidFinishLaunching(NSNotification notification)
{
SqlConnection ctx;
string dbPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal) + "/Mydatabase.db";
ctx.SqliteConnection("data source=" + dbPath);
ctx.Open();
...
}
` Mono.Data.Sqlite 在 ctx.Open 上炸毁 - “方法或操作未实现” --- Microsoft.Data.Sqlite 在 ctx.SqliteConnection("data...) 上炸毁 - “' 的类型初始化程序Microsoft.Data.Sqlite.SqliteConnection' 抛出异常“
我也尝试过 System.Data.SQLite、sqlite-net-pcl 和 sqlite-net。这些都在连接上爆炸。
我究竟做错了什么?
解决方案
我红着脸回答我自己的问题。在 MacO 上运行 sqlite 就像在项目中添加对 Mono.Data.Sqlite 和 System.Data 的引用一样简单。它也适用于 iOS 项目。根据我最初的问题,尝试采用 NuGet包路线让我无处可去。
我发现此解决方案的延迟来自这样一个事实,即 Windows 上的 Visual Studio 未显示对 Mono.Data.Sqlite 的引用。但是在 Visual Studio for Mac 上清楚地显示为一个选项。
推荐阅读
- heroku - `heroku config` 如何知道要使用什么应用程序?
- android - Android应用程序崩溃而logcat中没有任何错误
- c++ - 将生产者/消费者与屏障同步
- javascript - Promise.all 引发 TypeError: undefined is not a function
- c# - yamldotnet 合并2个yaml文件(深度合并功能)
- flutter - 如何在颤动中使用图像而不是图标?
- c# - 如何在列表视图时间列中选择日期的最新时间值
- angular - 角度项目中垫选择的异常行为
- dart - 如何将颤振 TimeOfDay 转换为 DateTime?
- php - 在 Eloquent 中使用 avg 编写 groupby 记录