如何解决从旧版本迁移到数据库时,程序集版本不匹配异常
在这种情况下:我有DAL程序集,它使用EntityFramework代码拳头连接到DB。 最近,我们在程序集中添加了强名称,包括DAL。 现在,当连接到数据库时,如果最后一次迁移是在以前版本的DAL(或其他公共令牌)上进行的,则将出现如下异常:
无法加载文件或程序集'MyProject.DAL,版本= 2.6.0.0, 文化=中性,PublicKeyToken =空”或其依赖项之一。的 定位的程序集的清单定义与程序集不匹配 参考。 (来自HRESULT的异常:0x80131040)
DAL的当前版本是2.6.1.0。异常是特定于数据库的,较旧的数据库之一正在寻找2.5.1.0。如果我在当前版本上创建新的空白迁移并应用它,则异常会停止,但是如果我再次更改DAL版本,则会再次获得异常。 是什么导致此异常,以及如何防止在每次DAL版本更新中都发生此异常?
解决方法
最近,我们在程序集中添加了强名称,包括DAL
您要为these reasons中的哪个做?
当您更改公钥令牌(通过强命名)或增加AssemblyVerion(而不是AssemblyFileVersion)时,您将破坏向后兼容性。
进行这样的更改后,您可能应该重新开始一个新的初始迁移。
您也许可以使用Binding Redirect解决AssemblyVersion的差异。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。