【问题标题】:UWP- Using a portable class library for sqlite. Am I misunderstanding bait+switch assemblies?UWP- 为 sqlite 使用可移植类库。我误解了诱饵+开关组件吗?
【发布时间】:2016-03-04 19:38:13
【问题描述】:

我们正在使用适用于 iOS 的 Xamarin Forms 构建应用,并且我们的团队已经构建了一个门户库,旨在可在其他项目中重复使用。我们已经确定要构建一个 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 项目不兼容,是否有任何替代方案适用于我们的两种环境?

【问题讨论】:

    标签: c# sqlite win-universal-app portability


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢上帝。现在出现新错误,但它们是我可以处理的错误,这真是令人头疼。感谢您解释这一点,我在其他地方没有找到真正解释开关组件是如何加载的。
    猜你喜欢
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-24
    • 2013-07-19
    • 2016-03-07
    • 2011-12-10
    相关资源
    最近更新 更多