UWP- 为 sqlite 使用可移植的 class 库。我误解了 bait+switch 组件吗?

UWP- Using a portable class library for sqlite. Am I misunderstanding bait+switch assemblies?

我们正在为 iOS 使用 Xamarin Forms 构建一个应用程序,我们的团队构建了一个门户库,旨在可在其他项目中重复使用。我们已经决定要构建一个 UWP 项目,并尝试在可移植项目中重用他们的代码。

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

Something went wrong in the build configuration.  This is the bait assembly, which is for referencing by portable libraries, and should never end up part of the app.  Reference the appropriate platform assembly instead.

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

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

如果重要的话,这是我们安装的 sqlite-net github

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

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

bait+switch 的讨厌的小技巧是,特定于平台的项目(也就是说,顶级)必须包含开关。不只是 PCL,实际上正在使用它们。

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

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