使用System.Data.SQLite生成ADO.NET实体数据模型时的程序集版本和位置

时间:2012-06-05 07:44:00

标签: entity-framework sqlite nuget .net-assembly system.data.sqlite

我的问题的背景如下:

  • 我以前安装了here
  • 提供的System.Data.SQLite ADO.NET适配器
  • 与程序集一起,我安装了设计时支持,用于从SQLite数据库创建实体数据模型。
  • 当我安装设计时支持时,程序集版本为Version=1.0.79.0
  • 昨天我开始了一个新项目,并使用Design Time Support工具从SQLite数据库生成了一个数据模型。
  • 对于我的项目,我必须添加对System.Data.SQLiteSystem.Data.SQLite.Linq程序集的引用。在这里,我选择使用Nuget来获取最新版本,因为这样可以简化其余开发过程中的更新。由Nuget提取的最新汇编版本为Version=1.0.81.0

项目已编译,但在执行时给了我这个错误:

System.IO.FileLoadException was unhandled
  Message=Could not load file or assembly 'System.Data.SQLite, Version=1.0.79.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)
  Source=mscorlib
  FileName=System.Data.SQLite, Version=1.0.79.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139

我认为这是因为Design Time Support工具引用的程序集版本与我的项目引用的版本不同,我是对的。我从System.Data.SQLite站点下载了最新的设置,重新安装了设计时支持,并重新编译了该项目。这解决了我的问题。

我的问题是:

  1. 这是否意味着我无法使用随System.Data.SQLite设置一起提供的设计时工具以及Nuget,因为旧安装的设计时支持版本与Nuget的最新组件之间经常会不匹配?或者有没有办法通过Nuget更新设计时支持,或者更好的是,使用最新的汇编版本编译模型,而不是设计时支持(我猜在GAC中,我知道)珍贵的一点点。)。

0 个答案:

没有答案