English 中文(简体)
两种不同的组别 “所在地的组装明确定义与组装参照法不相符”。
原标题:Two different assembly versions "The located assembly s manifest definition does not match the assembly reference"

我正在做一个项目,需要使用Mysql Connector for NHibernate(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。 我如何让两个议会进行合作?

编辑:

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

<?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>

我指的是另一个项目中的主要会议,并且仍然有同样的错误。 如果我的主要集会被复制到地方供其他大会使用,那么,它是否使用背书的环境,或者是否必须将这些信息列入提及我的主要集会的每一申请或集会?

最佳回答

那是一种相当严重的版本不匹配。bindingRedirect在版本差异如此之大时是不会有帮助的。顺便说一句,你把它搞错了,你应该让newVersion与找到的那个版本相匹配。但是不要去那里。

看了一下Migrator.NET的下载,我觉得我发现问题了。lib文件夹包含一个非常古老的MySql.Data.dll版本,它是为.NET 1.0制作的。先将其删除,然后尝试使用6版本的该程序集进行重建。祝你好运,我认为你会需要它的。

问题回答

你正在寻找组件绑定重定向。

这样可以让您配置应用程序以查找不同的程序集版本。

如果您同时拥有装配的两个版本,一个选项是将它们并排使用,并简单地配置应用程序以查找正确的地方。您可以通过在app.config中放置一些行来实现这一点,但对我而言,最可靠的方法始终是注册AppDomain.AssemblyResolve事件并提供所需库的路径。

对于一个简单的例子,你可以看看这里(一个与问题不太相关的答案,但使用了相同的技术;))

简单的解决方案是从Migrator.NET项目中删除引用旧版MySql的Mysql.data.dll,并添加新的引用MySql.data.dll(与另一个项目使用的版本相同)。重新构建Migrator.NET,现在所有应该都可以正常工作。我也面临着同样的问题,我提到的解决方案对我完美地奏效了。

I was also facing the same issue, and was not able to solve by any of the above solution. So finally I found one more solution for this... Remove everything from license.licx file in project=>Properties in solution explorer.

当我从档案中删除所有材料时,它允许我成功地建设该项目。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签