无法在Xamarin中安装SQLite-Net-pcl

时间:2017-02-14 07:16:28

标签: c# sqlite xamarin xamarin.forms sqlite-net

我正在尝试将我的项目从SQLite.Net-PCL转换为sqlite-net-pcl(最新稳定版本; 1.3.1),正如它在Xamarin's working with databases上所说,但是当我安装它时,它有安装下面列出的40个包(或左右)

Microsoft.NETCore.Platforms 1.0.1
Microsoft.NETCore.Targets 1.0.1
runtime.native.System   4.0.0
SQLitePCLRaw.core 1.1.2
SQLitePCLRaw.bundle_green 1.1.2
System.Collections 4.0.11
System.Collections.Concurrent 4.0.12
System.Diagnostics.Debug 4.0.11
System.Diagnostics.Tools 4.0.1
System.Diagnostics.Tracing 4.1.0
System.Globalization 4.0.11
System.IO 4.1.0
System.IO.Compression 4.1.0
System.Linq 4.1.0
System.Linq.Expressions 4.1.0
System.Net.Http 4.1.0
System.Net.Primitives 4.0.11
System.ObjectModel 4.0.12
System.Reflection 4.1.0
System.Reflection.Extensions 4.0.1
System.Reflection.Primitives 4.0.1
System.Resources.ResourceManager 4.0.1
System.Runtime 4.1.0
System.Runtime.Extensions 4.1.0
System.Runtime.InteropServices 4.1.0
System.Runtime.Numerics 4.0.1
System.Text.Encoding 4.0.11
System.Text.Encoding.Extensions 4.0.11
System.Text.RegularExpressions 4.1.0
System.Threading 4.0.11
System.Runtime.InteropServices.RuntimeInformation 4.0.0
System.Threading.Tasks 4.0.11
System.Xml.ReaderWriter 4.0.11
System.Xml.XDocument 4.0.11
NETStandard.Library 1.6.0
sqlite-net-pcl 1.3.1

我知道它需要一些软件包,但对我来说似乎有很多软件包。 我正在使用Xamarin.Forms版本2.3.3.180(最新的稳定版)

如果我继续安装,会发生这样的错误

Could not install package 'System.Runtime.InteropServices.RuntimeInformation 4.0.0'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile111', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

如何安装sqlite-net-pcl,以便继续在Android N上使用SQLite?

现在我有这些目标

.NET Framework 4.5
Windows 8
ASP.NET Core 1.0 (I do not know why this is set)
Windows Phone 8.1 (I am not using this, but it says I have to reinstall all Nuget packages, if I want to remove it)
Xamarin.Android
Xamarin.iOS
Xamarin.iOS (Classic)
Xamarin.Mac (neither using this)

我是否必须删除我没有使用的目标并重新安装所有Nuget包?

我正在使用这些NuGet包

Acr.UserDialogs
ExifLib.PCL
Microsoft.NETCore.UniversalWindowsPlatform
MR.Gestures
Newtonsoft.Json
Xam.Plugin.Media
Xam.Plugins.Settings
Xamarin.Forms
Xamarin.Insights
Xamarin.UITest
XLabs.Forms
ZXing.Net.Mobile.Forms

4 个答案:

答案 0 :(得分:7)

您已安装.NetStandard版本

  

发行说明v1.3.1:

     

切换到.NET标准

如你所见 NETStandard.Library 1.6.0现已添加为包。

我会删除sqlite-net-pcl 1.3.1以及为.NetStandard安装的其他软件包然后使用v1.2.1 因为它从here

添加了bundle_green,因此它仍然具有针对Android N的修复程序
  

v1.2.1:将.raw更新为bundle_green 1.1.0

您可以阅读有关修复here

的更多信息

答案 1 :(得分:1)

我担心你必须做你说的话。我有一个类似的问题(幸运的是这是一个新的项目),我没有其他办法做到这一点。您将不得不删除每个nuget包,更改目标以删除导致此错误的目标,然后重新安装所有包。 我建议你逐个删除目标并尝试安装sqlite。您将能够隔离导致错误的目标。

答案 2 :(得分:0)

我已将该库移植到纯.NET标准版。我把它减少到一个适用于所有平台的库:android,iOS,uwp等,但我已经删除了orm功能。 https://github.com/MelbourneDeveloper/SQLite.Net.Standard

NuGet:SQLite.Net.Standard

答案 3 :(得分:0)

我有同样的问题。我通过首先安装'System.Runtime.InteropServices.RuntimeInformation 4.0.0'而不是之后安装SQlite-pcl软件包解决了我的问题。