c# - 桌面应用程序 + SQLite - 版本 = 1.0.65.0 与版本 1.0.104.0

标签 c# .net sqlite visual-studio-2015

我目前正在编写一个桌面应用程序(没有托管在 IIS 或类似的 .NET 4.5.2 中),它使用 SQLite 的实体提供程序>SQLite。为了让它在 Visual Studio 中工作,我必须从 SQLite 站点安装 1.0.65.0 版本包,以获取 SQLite< 的 EF6 提供程序 在 Visual Studio 中。据我所知,这符合预期,这也是唯一可以做到的方法。

对于我的应用程序,我想使用当前版本 1.0.104.0(同样,来自 sqlite 页面的信息)。我已成功将此版本的 Nuget 包添加到我的应用程序中,当我查看引用选项卡时,我可以看到 System.Data.SQLiteSystem. Data.SQLite.EF6System.Data.SQLite.Linq,版本均为 1.0.104.0,特定版本设置为 True。 Copy Local 对所有这三个都设置为 true。

所以现在当我运行我的应用程序并到达该行时:

using (var ctx = new SmtAoiLookupEntities())
{
  foreach (var lu in ctx.Lookups.Where(d=>!string.IsNullOrEmpty(d.Aoi)))
  {
      ...
  }
}

我收到以下错误消息:

An exception of type 'System.IO.FileLoadException' occurred in mscorlib.dll and wasn't handled before a managed/native boundary

Additional information: Could not load file or assembly 'System.Data.SQLite, Version=1.0.65.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

由此,我了解到我的应用程序试图加载版本 1.0.65.0,尽管我所有的引用都指向 1.0.104.0。我完全不知道我的应用程序从哪里得到我想要加载 1.0.65.0 的想法。我什至在文件中进行了查找以捕获对“1.0.65”的任何引用,但完全没有结果。

我用过

gacutil -l System.Data.SQLite 

查看 GAC 中存储了哪些程序集 -> 版本 1.0.104.0

现在,这似乎只发生在我从 Visual Studio 中运行应用程序时;如果我在 Visual Studio 之外将应用程序作为可执行文件运行,则在保存上下文时会出现不同的错误。看来这是一个应用程序错误,与程序集版本问题无关。我也试过将应用程序设置为 32 位应用程序,问题仍然存在。

主要问题:我希望能够在 Visual Studio 中调试应用程序,否则这会变得非常麻烦。有什么想法告诉 Visual Studio 不要加载 1.0.65.0 库吗?

最佳答案

您的解决方案中的一个项目仍然指向以前的 SQLite 版本。在我的例子中,它是哪个文件引发错误的项目。确保解决方案中的每个项目都有更新的包版本为我解决了这个问题。

关于c# - 桌面应用程序 + SQLite - 版本 = 1.0.65.0 与版本 1.0.104.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41562297/

相关文章:

c# - 自定义 id 字段时 C# 中的 MongoDB 反序列化

c# - 如何为具有不同参数的同一Controller方法设置不同的路由?

sql - 如何删除未通过sqlite约束的行?

C# 定时器回调

c# - Linq 查询使所有调用都带外键的表数据

c# - Observable.Interval 等待 Action 完成

.net - 更改 Orchard cms中的日期格式

android - Android SQL 如何从一列返回所有数据

c# - 设置 NHibernate Fluent 以进行级联操作。

c# - 如何使用 MessageQueue 检测连接中断