【发布时间】:2012-04-19 14:12:35
【问题描述】:
我正在处理一个项目,该项目需要使用 Mysql Connector for NHibernate (Mysql.Data.dll)。我还想在同一个项目中引用另一个项目(Migrator.NET)。问题是即使 Migrator.NET 是使用特定版本 = false 的对 MySql.Data 的引用构建的,它仍然会尝试引用构建库时使用的旧版本的 MySql.Data,而不是仅使用那里的版本..我得到标题中列出的异常:
----> System.IO.FileLoadException : 无法加载文件或程序集 'MySql.Data,版本=1.0.10.1, 文化=中性, 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 中的设置,还是必须在引用我的主程序集的每个应用程序或程序集中包含此信息?
【问题讨论】:
标签: c# nhibernate assemblies migratordotnet