我有一个正在处理的项目,需要使用 NHibernate 的 Mysql 连接器(Mysql.Data.dll)。我还想在同一个项目中引用另一个项目(Migrator.NET)。问题是即使 Migrator.NET 是使用特定版本 = false 的对 MySql.Data 的引用构建的,它仍然会尝试引用构建库时使用的旧版本的 MySql.Data 而不是仅使用那里的版本..我得到标题中列出的异常:
----> System.IO.FileLoadException:无法加载文件或程序集“MySql.Data,版本=1.0.10.1,Culture=neutral,PublicKeyToken=c5687fc88969c44d”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)
我在主程序集中引用的版本是 6.1.3.0。如何让两个程序集合作?
编辑:
对于那些指定程序集绑定重定向的人,我已经设置了:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-6.1.3.0" newVersion="6.1.3.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
我在另一个项目中引用了这个主程序集,但仍然遇到相同的错误。如果我的主程序集被复制到本地以在另一个程序集中使用,它会使用 app.config 中的设置,还是必须将此信息包含在引用我的主程序集的每个应用程序或程序集中?