2010-01-18 43 views
2

我已经安装了ASP.NET MVC 2 RC,打开默认的 “示例项目”,但出现以下错误:ASP.NET MVC 2 System.Web.Mvc.dll程序冲突

Parser Error Message: The type 'System.Web.Mvc.ViewMasterPage' is ambiguous: it could come from assembly 'C:\WINDOWS\assembly\GAC_MSIL\System.Web.Mvc\2.0.0.0__31bf3856ad364e35\System.Web.Mvc.dll' or from assembly 'C:\Documents and Settings\sfent\My Documents\Visual Studio 2008\Projects\MvcApplication1\MvcApplication1\bin\System.Web.Mvc.DLL'. Please specify the assembly explicitly in the type name.

这似乎是GAC dll和创建并放置在bin目录(我认为应该优先使用GAC版本)的dll之间的冲突

我已使用Google搜索此问题并发现了类似问题,但与不正确的命名空间有关。这是与MVC框架捆绑在一起的未更改的示例应用程序。

我也尝试完全删除框架并重新安装RC,但无济于事。

所有建议表示赞赏。

回答

0

您的项目是否参考了框架的v1和v2?另外,为什么不删除本地复制的匹配的dll?

+0

当您构建项目时,dll会自动在bin目录中创建。我只参考v2并且只有v2在机器上。 – Fenton 2010-01-18 10:07:46

+0

@索尼:您可以将引用程序集设置为不复制到bin文件夹(右键单击引用并选择属性)。 – Richard 2010-01-18 10:31:49

+1

我认为这个想法是你想在bin文件夹中的本地dll部署到“MVC未安装”托管?我错过了什么。 – Fenton 2010-01-18 10:46:44

1

的问题可能是在你的项目的引用仍然指向旧版本的DLL(v1.0)。删除参考并向版本(v2.0)添加一个新参考。

你发现提示,以及在MVC2 RC的发布说明:

“使用Visual Studio中打开该项目,并在Solution Explorer中,展开参考节点删除参考System.Web.Mvc(指向版本1.0程序集)添加对System.Web.Mvc(v2.0.0.0)的引用。“

干杯, Damrod

+0

嗨Damrod,感谢提示 - 我从来没有在这台机器上另一个MVC的实现,所以这不是在这种情况下的问题。干杯。 – Fenton 2010-01-19 08:34:51

+0

此问题在Visual Studio 2008的ASP .NET MVC 2 RTM中仍然存在。在自动生成的单元测试项目中也发生了同样的错误。 – 2010-04-22 17:54:36

+0

这对我有效 - 谢谢,Damron。 – 2014-12-31 19:22:06

5

我得到这个错误,在我的情况下,它是很容易解决的。

我在我的Views文件夹中创建了一个新的主页面,但是我没有注意到它,它带有后面的代码和设计器,当然你不想使用MVC2。这一切都建立了,但给了我,“解析器错误消息:类型'System.Web.Mvc.ViewMasterPage'是不明确的:...”错误,当我跑它。

为了解决这个问题,我删除了我的新母版页的代码隐藏和设计器文件,错误消失了。

+0

+1有同样的问题,@Rafe在这里称之为。通过删除母版页面的.cs和设计器文件修复,无需重新安装。我认为这应该被标记为答案 – 2011-06-27 19:08:10