gpt4 book ai didi

sqlite - MVVMCross SQLite 社区插件不会添加到 Xamarin Studio 项目

转载 作者:行者123 更新时间:2023-12-03 19:46:34 25 4
gpt4 key购买 nike

我正在构建一个 MVVMCross 项目,最初是为 iOS 开发的,但目的是扩展到 Android。我正在使用 Xamarin Studio 创建应用程序,并且根据文档中的示例和出色的 N+1 视频,我将 PCL 设置为我的核心,并为 UI 提供了一个 iOS 特定项目。但是现在我遇到了一个障碍:我正在尝试将 SQLite 从 NuGet 包添加到项目中,并且根据建议,我正在尝试添加社区插件而不是“旧”版本,但我收到以下错误当我这样做时:

------- 安装...MvvmCross.Community.Plugin.Sqlite 3.0.13 -------
正在尝试解决依赖项“MvvmCross.HotTuna.CrossCore (≥ 3.0.13)”。
正在尝试解决依赖项“MvvmCross.PortableSupport (≥ 3.0.14)”。
将“MvvmCross.Community.Plugin.Sqlite 3.0.13”添加到 ShimanoSocial.Core。
无法安装包“MvvmCross.Community.Plugin.Sqlite 3.0.13”。您正在尝试将此包安装到以“portable-net45+wp80+win+MonoAndroid10+MonoTouch10”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关详细信息,请联系包作者。
System.InvalidOperationException:无法安装包“MvvmCross.Community.Plugin.Sqlite 3.0.13”。您正在尝试将此包安装到以“portable-net45+wp80+win+MonoAndroid10+MonoTouch10”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关详细信息,请联系包作者。
在 NuGet.ProjectManager.ExtractPackageFilesToProject(IPackage 包)[0x00000] 中:0
在 NuGet.ProjectManager.AddPackageReferenceToProject(IPackage 包)[0x00000] 中:0
在 NuGet.ProjectManager.Execute(NuGet.PackageOperation 操作)[0x00000] 中:0
在 NuGet.ProjectManager.Execute(IPackage 包,IPackageOperationResolver 解析器)[0x00000] 中:0
在 NuGet.ProjectManager.AddPackageReference(IPackage 包, bool ignoreDependencies, bool allowPrereleaseVersions)[0x00000] 在:0
在 NuGet.ProjectManager.AddPackageReference(System.String packageId,NuGet.SemanticVersion 版本, bool ignoreDependencies, bool allowPrereleaseVersions)[0x00000] 在:0
在 ICSharpCode.PackageManagement.SharpDevelopPackageManager.AddPackageReference(IPackage 包, bool ignoreDependencies, bool allowPrereleaseVersions)[0x00000] 在:0
在 ICSharpCode.PackageManagement.SharpDevelopPackageManager.InstallPackage(IPackage 包,ICSharpCode.PackageManagement.InstallPackageAction installAction)[0x00000] 在:0
在 ICSharpCode.PackageManagement.PackageManagementProject.InstallPackage(IPackage 包,ICSharpCode.PackageManagement.InstallPackageAction installAction)[0x00000] 在:0
在 ICSharpCode.PackageManagement.InstallPackageAction.ExecuteCore () [0x00000] 在:0
在 ICSharpCode.PackageManagement.ProcessPackageAction.Execute () [0x00000] 中:0
在 ICSharpCode.PackageManagement.PackageActionRunner.Run(IPackageAction 操作)[0x00000] 中:0
在 ICSharpCode.PackageManagement.PackageViewModel.InstallPackage (IEnumerable`1 packageOperations) [0x00000] in :0
在 ICSharpCode.PackageManagement.PackageViewModel.InstallPackage () [0x00000] 在:0
在 ICSharpCode.PackageManagement.PackageViewModel.TryInstallingPackage () [0x00000] 中:0
===============================

我的项目使用配置文件 78 以 .NET 4.5+、WP8、W8、Xamarin.Android 和 Xamarin.iOS 为目标。

我以前能够安装“旧”的 SQLite MVVMCross 插件,但不想这样做,因为它显然已被社区版弃用。但是社区版不会安装。

谁能告诉我如何让它工作?

提前谢谢了!

最佳答案

不要使用这个插件。

而是使用 PCL nuget“sqlite.net pcl”。它具有跨平台的 sqlite 库。您必须至少将 nuget 包添加到最终应用程序 (ios/android) 项目和核心项目中。

http://www.nuget.org/packages/SQLite.Net-PCL/
或者
https://www.nuget.org/packages/SQLite.Net.Async-PCL/对于异步版本

使用示例:https://github.com/oysteinkrog/SQLite.Net-PCL

在每个平台的启动方法中,您必须在 mvvmcross IOC 中注册 ISQLitePlatform 接口(interface)和 SQLitePlatformIOS 实现。

Mvx.RegisterType<ISQLitePlatform, SQLitePlatformIOS>();    

然后,您可以使用 mvvmcross IOC 构建器创建 SQLiteConnection 的实例。
var sqlConnection = Mvx.IocConstruct<SQLiteConnection>("mydbpath");

或者,如果您不想使用 ioc,请在交叉库中创建一个静态属性,然后在每个平台项目的启动时分配它。

注意:不支持 IOC 方法,因为 mvvmcross IocContruct 目前不能有参数。

关于sqlite - MVVMCross SQLite 社区插件不会添加到 Xamarin Studio 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20823427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com