none
未能加载文件或程序集“EntityFramework”或它的某一个依赖项 RRS feed

  • 问题

  • 未能加载文件或程序集“EntityFramework”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

    经常出现以上情况,解决方案中有2个web项目,卸载一个,另一个就正常,这样的情况会有什么原因?

    2013年12月24日 7:08

答案

  • 我看到你的描述,发现只是网2影响网1,并没有提到这个结果是对称的,也就是网1没有卸载,F5 网2,网2 并没有报错。对吧。

    我建议你别用卸载项目的功能,同时把两个项目的“总是在调试时启动”设置为 false,然后在任务栏中把 Asp.Net Development Server 都停止掉,然后:

    1、在网1项目上点击右键,选择“调试”-〉“启动新实例”,程序应该没有问题;

    2、在网2项目上点击右键,选择“调试”-〉“启动新实例”,按照你的描述,网2的页面也能正常打开;

    3、点击网1的页面,看看是否出现错误;

    重复上面这个步骤,把网1和网2对调,记得重复之前,先把任务栏中的 Asp.Net Development Server 都停止掉。

    PS:根据我的判断,错误应该是你的网1或网2项目使用的 EF 5.0 同引用的库项目的 EF 4.4 的问题。

    • 已标记为答案 seeseason 2013年12月24日 9:41
    2013年12月24日 9:30

全部回复

  • 你两个 web 项目有引用关系?

    2013年12月24日 7:17
  • 没有,有可能是版本冲突,用到的库项目中是4.4.0.0,但是2个Web项目中引用的都是5.0.0.0,两个库项目之间没有引用关系,可是如果是冲突那为什么卸载其中一个后,另一个就能用,这个有点不懂
    2013年12月24日 7:23
  • 你能把你的具体操作流程说说吧,也就是你如何操作,就能复现场景。

    2013年12月24日 7:30
  • 有2个web项目,其中(暂叫网2)一个是把旧数据导入的新数据库的项目,这个项目一旦运行,另一个正常的网站(暂叫网1)就报上面的错误,把这个(网2)卸载了,再运行(网1),一切正常
    2013年12月24日 8:48
  • 有2个web项目,其中(暂叫网2)一个是把旧数据导入的新数据库的项目,这个项目一旦运行,另一个正常的网站(暂叫网1)就报上面的错误,把这个(网2)卸载了,再运行(网1),一切正常

    运行是什么意思?

    是指在项目上单击鼠标右键,选择“调试”-〉“启动新实例”吗?

    也就是说我照着你的话做,能够还原你的操作流程。麻烦你再赘述下。

    2013年12月24日 8:53
  • 环境:VS2012 Update4

    解决方案 :

    有几个库项目是一些工具及业务处理,库项目版本.NET4,里面用到的EF版本是4.4.0.0;

    2个Web站点,版本.NET4.5 ,MVC项目,里面用到的EF版本是5.0.0.0;

    出现的异常如题目;

    操作过程:

    当卸载(网2),F5 (网1),正常;

    加载(网2),这时2个项目都在解决方案中,(网1)并没有卸载,F5 (网2),正常调试;F5 (网1)时就报上面的异常;然后把(网2)从解决方案中卸载后,F5 (网1)正常调试。

    2013年12月24日 9:15
  • 我看到你的描述,发现只是网2影响网1,并没有提到这个结果是对称的,也就是网1没有卸载,F5 网2,网2 并没有报错。对吧。

    我建议你别用卸载项目的功能,同时把两个项目的“总是在调试时启动”设置为 false,然后在任务栏中把 Asp.Net Development Server 都停止掉,然后:

    1、在网1项目上点击右键,选择“调试”-〉“启动新实例”,程序应该没有问题;

    2、在网2项目上点击右键,选择“调试”-〉“启动新实例”,按照你的描述,网2的页面也能正常打开;

    3、点击网1的页面,看看是否出现错误;

    重复上面这个步骤,把网1和网2对调,记得重复之前,先把任务栏中的 Asp.Net Development Server 都停止掉。

    PS:根据我的判断,错误应该是你的网1或网2项目使用的 EF 5.0 同引用的库项目的 EF 4.4 的问题。

    • 已标记为答案 seeseason 2013年12月24日 9:41
    2013年12月24日 9:30
  • 非常感谢,按你说的,已解决。
    2013年12月24日 9:41
  • 可能是您的项目编译有错,这样也有可能导致上面这个问题
    2015年8月5日 3:43