gpt4 book ai didi

c# - 两个不同的程序集版本 "The located assembly' 的 list 定义与程序集引用不匹配”

转载 作者:行者123 更新时间:2023-11-30 14:43:10 27 4
gpt4 key购买 nike

我有一个正在处理的项目需要使用 NHibernate 的 Mysql 连接器 (Mysql.Data.dll)。我还想在同一项目中引用另一个项目 (Migrator.NET)。问题是,即使 Migrator.NET 是使用特定版本 = false 的 MySql.Data 引用构建的,它仍然会尝试引用构建库时使用的旧版本 MySql.Data,而不是仅使用现有版本.. 我得到了标题中列出的异常:

----> System.IO.FileLoadException : Could not load file or assembly 'MySql.Data, Version=1.0.10.1, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

我在主程序集中引用的版本是 6.1.3.0。我如何让这两个程序集合作?

编辑:

对于那些指定程序集绑定(bind)重定向的人,我已经设置好了:

<?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 中的设置,还是必须将此信息包含在引用我的主程序集的每个应用程序或程序集中?

最佳答案

您正在寻找Assembly Binding Redirection .

这允许您配置应用程序以查找不同的程序集版本。

关于c# - 两个不同的程序集版本 "The located assembly' 的 list 定义与程序集引用不匹配”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2284017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com