【问题标题】:Adding System.Data.SQLite through NuGet doesn't add a reference to the project通过 NuGet 添加 System.Data.SQLite 不会添加对项目的引用
【发布时间】:2015-10-18 00:57:12
【问题描述】:

我正在尝试制作一个非常简单的 Xamarin.Forms 测试应用程序来探索 System.Data.SQLite 包的一些功能(即加密)。但是,我似乎无法让 Visual Studio 2012 将包的引用添加到项目中。

以下是我正在采取的步骤:

  1. 创建了一个新的 Xamarin.Forms Portable 空白应用。
  2. 右键单击 TestApp(核心项目)并选择管理 NuGet 包
  3. 搜索“sqlite”
  4. 安装“System.Data.SQLite (x86/x64)”包。 (这个包的版本是 1.0.97.0,它被描述为“x86 和 x64 的官方 SQLite 数据库引擎以及 ADO.NET 提供程序。”)
  5. 根据NuGet,包安​​装成功。

但是,我看不到在我的项目的“参考”文件夹下添加的参考,并且我也无法在没有错误的情况下编写“使用 System.Data.SQLite”(“无法解析符号'数据'”)。有谁知道为什么会这样?

附带说明,我可以按照上述完全相同的过程进行操作,但我选择了一个常规的 C# 控制台应用程序,而不是创建 Xamarin.Forms Portable 空白应用程序。这使我可以很好地安装 NuGet 包,并按预期显示在引用中。

【问题讨论】:

    标签: visual-studio sqlite xamarin package nuget


    【解决方案1】:

    发布更新以分享我学到的知识。

    正如 Jason 在他的回答中所暗示的那样,我无法在我的 Xamarin.Forms 项目中引用该包的原因是,根据定义,Xamarin.Forms 是一个 PCL 项目。它适用于所有平台。我在我的问题中提到的包不是 PCL,这意味着包中依赖于平台的任何东西都是不可访问的(基本上是整个包)。 SQLite.Net-PCL 包与 System.Data.SQLite 基本相同,但采用 PCL 形式,这意味着它可以在 Xamarin.Forms 项目中使用。

    按照这个逻辑,我能够从控制台项目访问 System.Data.SQLite 是有道理的,因为控制台项目不是 PCL 项目,它针对特定平台。

    【讨论】:

      【解决方案2】:

      对于 PCL 项目,请使用 SQLite.Net-PCL。

      【讨论】:

      • 这是我正在研究的 SQLite 包之一。不过,它看起来不支持数据库加密,我绝对需要能够加密我的数据库。我会考虑将该包与 SQLCipher 一起使用,但我不确定它们是否相互兼容。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 2016-01-22
      • 2022-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多