0

我试图在三个应用程序中共享我的所有业务逻辑代码:一个 android 应用程序、一个 iOS 应用程序和一个 Winforms 应用程序。所有这三个应用程序都需要访问本地 Sqlite 数据库,我假设我可以使用 Mono.Data.Sqlite 来完成这三个应用程序。

因此,我设置了一个 Android 类库和一个常规的 .NET 类库,并将这些项目链接在一起。这适用于除 Sqlite 代码之外的所有内容。我不能仅仅引用 Mono.Data.Sqlite.dll 并让它在 Winforms 应用程序中工作吗?如果我这样做了,它仍然无法修复以下错误:

找不到类型或命名空间名称“SqliteConnection”(您是否缺少 using 指令或程序集引用?)

找不到类型或命名空间名称“SqliteDataReader”(您是否缺少 using 指令或程序集引用?)

现在,我认为添加对 Mono Sqlite DLL 的引用可以解决这个问题,但显然不是。它甚至找不到 Mono 命名空间本身。

我在想我可能需要一个专门为 Windows 而不是 Android 编译的 Mono.Data.Sqlite DLL。它是否正确?如果是这样,我可以在某处找到预编译的二进制文件吗(初步搜索没有返回任何有用的信息)。

或者我是否必须为 SQLite 代码编写一个包装器,以便它只在 Winforms 应用程序中使用 System.Data.SQLite(我希望避免这种情况,因为方法不同)?部署到 MonoTouch 时我是否必须这样做?几乎所有的 Mono 框架都会出现这种情况吗?

我只是想了解一下与 Mono 的代码库共享以及它如何应用于多个平台。这是我迄今为止的第一个主要障碍。我的目标是基本上为所有逻辑提供一个代码库,然后为每个平台编写本机 UI 代码。

谢谢!

4

1 回答 1

1

您也可以在桌面上使用 Mono.Data.Sqlite,但您可能希望参考桌面版本而不是 M4A 版本。

获取它的最简单方法可能是在桌面上下载并安装 Mono,可以从安装目录中获取 DLL。

请注意,您的确切情况确实有效,这就是我们所做的。我们有一个桌面 DALC 类库项目,使用我们所有的数据访问代码引用常规 Mono.Data.Sqlite。

Next we have MonoTouch and Mono4Android projects in the same solution. They reference the platform versions of the Mono.Data.Sqlite assembly, and all our source files are simply linked in.

So we have one code base, and three assemblies (one for each platform).

于 2012-07-19T12:35:35.743 回答