【问题标题】:Using Dapper (or other NuGet packages) with Xamarin Android将 Dapper(或其他 NuGet 包)与 Xamarin Android 一起使用
【发布时间】:2014-10-27 09:40:29
【问题描述】:

我目前正在为 FieldService 应用程序开发 Xamarin.Android 项目。我查看了数据访问层的标准 Xamarin SQLite.NET 组件,但它不能满足我的需求。 (例如,我无法创建具有多个字段的 PK)。

我尝试使用 Dapper 框架,因为我在这方面有更多经验,而且我认为它非常棒。

无法让它与 Xamarin.Android 一起使用。我正在将 Xamarin 与 Visual Studio 2013 一起使用。有人知道如何操作吗?

我尝试了 3 种方法:

  1. 将 Dapper 添加到 Xamarin.Android 类库。 - 没有错误,但 Dapper 不在解决方案资源管理器中的 References 组下,我无法使用命名空间 Dapper

  2. 将 Dapper 添加到“普通”.net 类库。 - 一切正常,我可以添加它,我可以使用 Dapper 命名空间和 Query 方法等。但是将项目引用到主 Xamarin.Android 应用程序项目时出错。 (不同的目标框架)

  3. 将 Dapper 添加到面向 .NET Framework 4.5 和 Xamarin.Android 的可移植类库。 - 添加 NuGet 包时出错。

简单问题:如何将 Dapper(或其他 NuGet 包)添加到 Xamarin.Android?
提前致谢。

【问题讨论】:

  • 您应该在发布问题时提供详细信息。

标签: xamarin xamarin.android nuget dapper


【解决方案1】:

Dapper NuGet 包包含目标程序集:

  1. .NET 3.5
  2. .NET 4.0
  3. .NET 4.5

因此,您将无法将 NuGet 包与 Xamarin Android 项目一起使用,因为该项目将针对 MonoAndroid。

如果可能,需要针对 MonoAndroid 目标框架重新编译 Dapper。否则,您将需要查看其他替代方案。

查看 Dapper GitHub 站点,NuGet 包中可用的所有各种类都来自一个 SqlMapper.cs file,它似乎在 Android 项目中编译。

【讨论】:

  • 感谢您的回答!欣赏它。关于 SqlMapper.cs,你的意思是我可以下载 .cs 文件并将其手动包含在我的项目中吗?我想唯一的缺点是我不会收到自动更新通知。也许这是一个很好的方法。如果我认为它符合我的需要,我会调查并接受您的回答。再次感谢。
  • 是的,下载文件并将其添加到您的项目中。理想情况下,Dapper NuGet 包的所有者会针对 MonoAndroid 构建它,并将程序集包含在 NuGet 包中。
  • 安装 NuGet 包并手动引用下载的 .dll 也可以,但我最终使用了您的方法并将SqlMapper.cs 文件包含到我的项目中。谢谢!
  • @avb,你指的是哪个下载的DLL?我的猜测是 PCL 版本,但我想知道您指的是哪个版本。
  • @MarqueIV 已经有一段时间了,但据我记得我可以通过包管理器下载 NuGet,然后 Visual Studio 给出错误“此包不支持此项目类型”或类似那。但是,如果我随后手动添加了对下载的 .dll(在包文件夹中)的引用,它就起作用了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-14
  • 2017-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多