首页 > 解决方案 > 应该使用哪个“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。这些都在连接上爆炸。

我究竟做错了什么?

标签: c#macossqlite

解决方案


我红着脸回答我自己的问题。在 MacO 上运行 sqlite 就像在项目中添加对 Mono.Data.Sqlite 和 System.Data 的引用一样简单。它也适用于 iOS 项目。根据我最初的问题,尝试采用 NuGet包路线让我无处可去。

我发现此解决方案的延迟来自这样一个事实,即 Windows 上的 Visual Studio 未显示对 Mono.Data.Sqlite 的引用。但是在 Visual Studio for Mac 上清楚地显示为一个选项。


推荐阅读