我的问题的上下文如下:
- 我之前安装了 System.Data.SQLite ADO.NET 适配器,可从此处获得
- 与程序集一起,我安装了用于从 SQLite 数据库创建实体数据模型的设计时支持。
- 当我安装设计时支持时,程序集版本是
Version=1.0.79.0
- 昨天我开始了一个新项目,并使用设计时支持工具从 SQLite 数据库生成了一个数据模型。
- 对于我的项目,我必须添加对
System.Data.SQLite
和System.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
我认为这是因为设计时支持工具引用的程序集版本与我的项目引用的版本不同,我是对的。我从 System.Data.SQLite 站点下载了最新的设置,重新安装了设计时支持,并重新编译了项目。这解决了我的问题。
我的问题是:
- 这是否意味着我不能将 System.Data.SQLite 设置提供的设计时间工具与 Nuget 一起使用,因为旧安装的设计时间支持版本和 Nuget 的最新程序集之间经常不匹配?或者有没有办法通过 Nuget 更新设计时支持,或者更好的是,使用最新的程序集版本编译模型,而不是设计时支持附带的任何东西(我猜这是在 GAC 中,我知道珍贵的小东西)。