asp服务器错误'无法加载文件或程序集',但程序集肯定存在。

问题描述:

我目前收到以下错误。在locahost网站上。asp服务器错误'无法加载文件或程序集',但程序集肯定存在。

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肯定位于指向它的本地计算机上。我也尝试删除并重新添加引用。

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

什么是程序集清单定义?

在此先感谢您的帮助,我非常感激。

+0

我讨厌这个问题 - 我以前见过它,因为它的噩梦,是出现在垃圾桶里的dll? – 99823 2013-04-10 00:27:10

+0

另外 - 你确定你正在使用的版本是6.5.4.0? – 99823 2013-04-10 00:28:06

+0

http://*.com/questions/215026/the-located-assemblys-manifest-definition-does-not-match-the-assembly-reference – 99823 2013-04-10 00:28:41

在Visual Studio

选择在Solution Explorer中引用然后在属性确保Specific Version属性设置为false

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

如果您关闭Visual Studio并打开一个文本编辑器的项目文件,确保在项目文件中的程序集的版本没有列出,但只有名称和类型,所以只要删除以下:

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

,那么它应该,如果您使用的是6.5.5或6.5.4,只要代码使用两种可用的类和方法的工作不管。

我也遇到同样的问题非常几天前,当您有早期版本建立自己的一些DLL,现在你必须改变依赖的DLL版本,但没有再生成DLL得到这个错误。请检查是否有任何构建在早期版本上的组件。当我们构建任何DLL时,DLL自身在清单中添加所有依赖信息,以便在需要时加载所有依赖信息。所以,如果你删除DLL版本,你需要重新编译所有的组件,然后用

此问题仍然存在,也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" /> 

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

仔细阅读错误信息,其中提供了有用的详细信息以纠正这种情况。 我不会更改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 \ NET连接器6.7.4 \组件\ V4.0 \文件夹中bin文件夹)

希望这有助于!谢谢

我已经在一个新的机器上的旧的asp.net 2.0网站。在我的情况下,来自GAC的MySql程序集无法加载,因为它是.NET 4.0。在web.config中的程序集重定向不起作用。我固定它,如下所示:

我得到了同样的错误,并且文件完全存在。 如果您在您的错误旁边看到一个SGEN,您可以试试这个:

在项目属性窗口中,转到Build并在Output部分转到Generate serialization assembly下拉菜单。将“自动”值更改为“关”并重新编译。

如果需要,您可以将其重新设置为自动。