找到相同依赖程序集的不同版本之间的冲突.MVC3 - > MVC4 / EF4 - > EF5

时间:2012-06-26 22:58:38

标签: razor asp.net-mvc-4 .net-4.5 entity-framework-5

问题是如何解决我的项目升级到MVC4和EF5的程序集版本之间的冲突?

问题在于我的控制器和模型可以包含System.Data.Objects,但现在是我的视图。

我正在使用MVC 4,我的项目已从MVC 3升级。

实体框架是第5版。

我有一个能够使用System.Data.Objects中的objectcontext的控制器。

我的用法:     使用System.Data.Objects;     使用System.Data.Entity;

当我尝试在视图表单System.Data.Objects中包含using时,我得到:

CS0234:命名空间“System.Data”中不存在类型或命名空间名称“Objects”(您是否缺少程序集引用?)

我的目标是.net 4.5

我的构建显示以下消息: C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(1561,5):警告MSB3247:发现同一依赖程序集的不同版本之间存在冲突。

3 个答案:

答案 0 :(得分:28)

您可以在诊断模式下构建解决方案,以获取有关错误的更多详细信息。

打开VS Options对话框(Tools> Options),导航到“Projects and Solutions”节点,然后选择“Build and Run”。将MS Build项目构建输出详细程度更改为Diagnostic。

看看here

答案 1 :(得分:3)

如果查看构建消息,它会指出.net框架的4.0版本被引用...项目文件或web / app.config中是否有设置指定.net框架的冲突版本?

你熟悉fuslog吗?您可以将其设置为记录.net在运行应用程序时正在执行的所有程序集绑定。然后,您应该能够看到有关什么时候绑定的详细信息。如果你仍然无法搞清楚,你可以随时在web.config中对该.dll进行绑定重定向。

http://msdn.microsoft.com/en-us/library/eftw1fys.aspx - 绑定重定向

http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71).aspx - 融合日志查看器

设置融合记录器并查看输出结果。如果您没有得到答案,请尝试绑定重定向(这将至少为您提供临时解决方案)。

答案 2 :(得分:0)

在我发布的目录中,有一个名为aspnet_client的文件夹。我移动它(而不是删除它),重新发布,它工作。我不确定为什么那个文件夹决定给我带来麻烦。