【问题标题】:System.Data.SQLite for .NET 4.6 in a project that targets .NET 4.7.2.NET 4.6 的 System.Data.SQLite 在以 .NET 4.7.2 为目标的项目中
【发布时间】:2020-03-06 21:47:32
【问题描述】:

我正在开发一个面向 .NET 4.7.2 的 VB .NET 应用程序。

我需要在我的项目中使用 System.Data.SQLite。目前,SQLite 人员只有 .NET 的预编译二进制文件,最高版本为 4.6。

我从 System.Data.SQLite 的下载页面找到了一个建议:

强烈建议选择与目标 .NET Framework 版本匹配的包。

你可以看到困境。 .NET 4.7.2 没有包。

那么,是否可以在针对 .NET 4.7.2 的项目中为 .NET 4.6 引用 System.Data.SQLite 二进制程序集?如果有,有什么潜在影响?

【问题讨论】:

  • 没有必要为每个小的框架更新创建一个包,4.6 就可以了。
  • 或者你可以自己编译这个库?例如:Building System.Data.SQLite from Source, Builds with Target Framework 4.0
  • .NET Framework 的 4.x 版本都直接构建在 .NET 4.0 之上,这意味着它们相当向后兼容。在大多数情况下,您应该能够引用甚至为 .NET 4.0 构建的库,同时针对更高版本(例如 4.7.2 或 4.8)。
  • @HansPassant 如果我为我的 4.7.2 项目安装用于 .net framework 4.6 的 sqlite 会起作用吗?
  • @HansPassant 他们有为 .NET 4.6、4.5.1、4.5、4.0 甚至更早版本编译的版本。我认为拥有所有这些版本是有道理的,尽管我似乎无法找到原因的解释。您是否有机会扩展您的评论并解释为什么使用 4.6 会很好?

标签: .net vb.net system.data.sqlite


【解决方案1】:

基本上答案是肯定的,您可以在以 .NET 4.7.2 为目标的项目中使用 .NET 4.6 版本的 System.Data.SQLite。

我通过采用 HansPassant 和 VisualVincent 制作的 cmets 以及通过 C# 项目对我进行广泛测试得出了这个答案,我在使用 System.Data 时一直在研究哪些目标是 .NET 4.7.2。面向 .NET 4.6 的 SQLite 二进制文件。

之所以有效,是因为 .NET 4.x 的所有版本都使用CLR version 4.0。 Microsoft 确实尝试维护backwards compatibility,因此在大多数情况下,这样的场景应该不会出现任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多