10

问题是如何解决我的项目中升级到 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:发现同一依赖程序集的不同版本之间存在冲突。

4

3 回答 3

28

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

打开 VS 选项对话框(工具 > 选项),导航到“项目和解决方案”节点并选择“构建和运行”。将 MS Build 项目构建输出详细程度更改为诊断。

看看这里

于 2012-11-15T01:18:50.633 回答
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 -- 融合日志查看器

设置融合记录器并查看输出是什么。如果您没有从中得到答案,请尝试绑定重定向(这至少会给您一个临时解决方案)。

于 2012-06-27T02:41:07.923 回答
0

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

于 2018-03-07T18:56:41.347 回答