4

我目前收到以下错误。在本地主机网站上。

Could not load file or assembly 'MySql.Data, Version=6.5.4.0, 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)

虽然,引用肯定存在于引用文件夹中,并且该 dll 肯定在我的本地计算机上它指向的位置。我也尝试过删除并重新添加参考。

有谁知道什么会导致这个错误?

还有什么是程序集清单定义?

提前感谢您的帮助,我非常感谢。

4

7 回答 7

9

在 Visual Studio 中选择解决方案资源管理器中的引用,然后在属性中确保该Specific Version属性设置为false.

如果您在 中有此引用的条目web.config,请编辑该文件并删除版本信息。

如果您关闭 Visual Studio 并使用文本编辑器打开项目文件,请确保在项目文件中未列出程序集的版本,而仅列出名称和类型,因此只需删除以下内容:

, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d'

那么无论您使用的是 6.5.5 还是 6.5.4,只要代码使用两者都可用的类和方法,它应该可以工作。

于 2013-04-10T00:47:29.227 回答
1

我经历过同样的情况并设法通过这些步骤解决了问题,

仔细阅读错误信息,其中提供了有助于纠正这种情况的详细信息。我不会更改 machine.config 文件。正如它所说,应用程序找不到对程序集 MySql.Web 的引用,它试图引用的版本是 Version=6.7.4.0。

根据您安装 MySql 的路径,您将能够找到正确的程序集文件,例如:

C:\Program Files\MySQL\Connector NET 6.7.4\Assemblies\v4.0\MySql.Data.dll

将该文件复制到 bin 文件夹。(我会将 C:\Program Files\MySQL\Connector NET 6.7.4\Assemblies\v4.0\ 文件夹中的所有文件复制到 bin 文件夹)

希望这可以帮助!谢谢

于 2013-10-18T09:40:59.230 回答
0

几天前我也遇到过同样的问题,当你用早期版本构建了一些 DLL 并且现在你已经更改了依赖的 DLL 版本但没有再次构建 DLL 时,你会得到这个错误。请检查您是否有任何基于早期版本构建的组件。当我们构建任何 DLL 时,它自己在清单中的 DLL 添加所有依赖信息,以便它可以在需要时加载所有这些信息。因此,如果您删除该版本的 DLL,您需要重新编译所有组件,然后使用

于 2013-04-10T04:20:34.283 回答
0

此问题在较新版本的 MySql.Data 中也存在。只需从 App.config 文件更改版本:

<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-6.6.5.0" newVersion="6.6.5.0" />6.7.4.0

到 oldVersion="6.6.5.0"

<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
    <bindingRedirect oldVersion="6.6.5.0" newVersion="6.7.4.0" />
于 2013-07-21T07:04:11.257 回答
0

在某些情况下,它依赖于项目的 web.config 文件中的bindingRedirect属性。就我而言,我有两个版本:oldVersionnewVersion。我刚刚切换了这些值,它解决了问题。

警告:确保将新版本引用到 web.config 程序集的标记文件中,就像:<add assembly="$AssemblyName", Version=$NewVersion, Culture=neutral, PublicKeyToken=$KeyToken/>

于 2022-01-24T11:11:10.927 回答
0

我遇到了同样的错误,文件绝对存在。如果您在错误旁边看到 SGEN,可以尝试以下操作:

在项目属性窗口中转到 Build 并在 Output 部分中转到 Generate serialization assembly 下拉菜单。将值 Auto 更改为 Off 并再次构建。

如果需要,您可以将其设置回自动。

于 2017-07-20T10:11:37.210 回答
0

我在新机器上的旧 asp.net 2.0 网站上有这个。就我而言,来自 GAC 的 MySql 程序集无法加载,因为它是 .Net 4.0。web.config 中的程序集重定向不起作用。我将其修复如下:

于 2016-03-02T16:29:53.827 回答