UWP - 使用 sqlite 的可移植类库.我是否误解了诱饵+开关组件

本文关键字:误解 诱饵 组件 开关 是否 使用 sqlite 类库 可移植 UWP | 更新日期: 2023-09-27 18:37:22

我们正在使用 Xamarin Forms for iOS 构建一个应用,我们的团队构建了一个门户库,该库旨在在其他项目中重用。我们已确定要生成 UWP 项目,并尝试在可移植项目中重用其代码。

他们的代码引用了sqlite-net,据我了解,它有一个没有实现的"诱饵"pcl,然后有第二个"开关"程序集,它根据环境提供实现。当我尝试从我的 UWP 项目中的此库运行 sqlite 命令时,我收到以下错误消息:

构建配置中出现问题。 这是诱饵 程序集,用于可移植库引用,并且应该 永远不要成为应用程序的一部分。 参考相应的平台 改为组装。

所以如果我没记错的话,这意味着 1)我应该在我的项目中的某个地方自己实现包装器,或者 2) sqlite-net 项目应该实现这个包装器,但尚未为 UWP 这样做。或者3)别的东西,我严重误解了整个事情。

我阅读了有关引用 UWP 的 SQLite 的信息,但该扩展仅在 UWP 上可用,而带有 sqlite 代码的库标记为可移植,无法访问 UWP 扩展。

如果它很重要,这就是我们安装的sqlite-net github。

https://github.com/praeclarum/sqlite-net

如果最终情况是这与 UWP 项目不兼容,是否有任何替代方案适用于我们的两个环境?

UWP - 使用 sqlite 的可移植类库.我是否误解了诱饵+开关组件

诱饵+开关令人讨厌的小技巧是,平台特定的项目(可以说,顶层)必须包含开关。不仅仅是PCL,实际上也在使用它们。

这就是它在包中加载特定于平台的程序集的原因。

因此,只需将 sqlite-net 原始包也添加到您的 UWP 项目中,它应该可以正常运行。