【问题标题】:ASP.NET MVC 2 System.Web.Mvc.dll conflictASP.NET MVC 2 System.Web.Mvc.dll 冲突
【发布时间】:2010-01-18 09:28:03
【问题描述】:

我已经安装了 ASP.NET MVC 2 RC 并打开了默认的“示例项目”,但得到以下错误:

解析器错误消息:类型 'System.Web.Mvc.ViewMasterPage' 是 模棱两可:它可能来自组装 'C:\WINDOWS\assembly\GAC_MSIL\System.Web.Mvc\2.0.0.0__31bf3856ad364e35\System.Web.Mvc.dll' 或来自程序集 'C:\Documents and 设置\sfent\我的文档\Visual 工作室 2008\Projects\MvcApplication1\MvcApplication1\bin\System.Web.Mvc.DLL'。 请明确指定程序集 在类型名称中。

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

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

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

感谢所有建议。

【问题讨论】:

    标签: asp.net asp.net-mvc dll conflict


    【解决方案1】:

    我遇到了这个错误,就我而言,它很容易解决。

    我在我的 Views 文件夹中创建了一个新的母版页,但我没有注意到它带有代码和设计器,这当然是 MVC2 所不希望的。这一切都建立了,但是当我运行它时给了我“Parser Error Message: The type 'System.Web.Mvc.ViewMasterPage' is ambiguous:...”错误。

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

    【讨论】:

    • +1 有同样的问题,@Rafe 在这里称它为。通过删除母版页的 .cs 和设计器文件进行修复,无需重新安装。我认为这也应该标记为答案
    【解决方案2】:

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

    您也可以在 MVC2 RC 的发行说明中找到该提示:

    “使用 Visual Studio 打开项目,并在解决方案资源管理器中展开“引用”节点。删除对 System.Web.Mvc 的引用(指向版本 1.0 程序集)。添加对 System.Web.Mvc 的引用( v2.0.0.0)。”

    干杯, 达姆罗德

    【讨论】:

    • 嗨,Damrod,感谢您的提示 - 我从来没有在这台机器上实现过 MVC,所以在这种情况下不是问题。干杯。
    • 此问题在 ASP .NET MVC 2 RTM for Visual Studio 2008 中仍然存在。同样的错误也出现在自动生成的单元测试项目中。
    【解决方案3】:

    您的项目是否同时引用了框架的 v1 和 v2?还有,为什么不删除本地复制的匹配的dll呢?

    【讨论】:

    • 构建项目时会在 bin 目录中自动创建 dll。我只引用 v2 并且机器上只有 v2。
    • @Sohnee:您可以将引用的程序集设置为不复制到 bin 文件夹(右键单击引用并选择属性)。
    • 我认为您的想法是您希望将 bin 文件夹中的本地 dll 部署到“未安装 MVC”主机上?我错过了什么吗?
    猜你喜欢
    • 2016-04-17
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多