尝试调试项目时出现模糊的DLL解析器错误

时间:2011-04-05 18:48:31

标签: debugging asp.net-mvc-2

当我尝试调试我的MVC解决方案时,我收到以下错误:


分析器错误 说明:解析为此请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息并适当修改源文件。

分析器错误消息:类型'HandiGamer.MvcApplication'不明确:它可能来自程序集'C:\ Users \ Kevin \ documents \ visual studio 2010 \ Projects \ HandiGamer \ HandiGamer \ bin \ HandiGamer.DLL'或来自程序集'C:\ Users \ Kevin \ documents \ visual studio 2010 \ Projects \ HandiGamer \ HandiGamer \ bin \ HandiGamer.WebUI.DLL'。请在类型名称中明确指定程序集。

来源错误:

第1行:<%@ Application Codebehind =“Global.asax.cs”Inherits =“HandiGamer.MvcApplication”Language =“C#”%>

源文件:/global.asax Line:1


这是我第一次在项目中遇到此错误。自从我上次调试它以来,我所做的一切都是.master页面,一个视图,我添加了几个ViewModel类。我的解决方案有两个项目 - HandiGamer.WebUI和HandiGamer.Domain - 但我以前从未遇到过模糊性问题。重建我的解决方案什么也没做。我不知道还能做什么。

2 个答案:

答案 0 :(得分:2)

MvcApplication命名空间中的两个程序集中都定义了HandiGamer类。尝试使用Reflector打开它们,通过搜索此类名来确认。然后通过将其保留在ASP.NET MVC应用程序程序集中来删除重复的类。另一个项目必须是类库,而不是Web应用程序。

答案 1 :(得分:2)

您最近是否重命名过程会?在这种情况下,旧DLL可能仍在您的bin文件夹...\Projects\HandiGamer\HandiGamer\bin中并在运行时加载。正如错误消息告诉您的那样,DLL

  

HandiGamer.DLL
  HandiGamer.WebUI.DLL

都包含HandiGamer.MvcApplication所以解析器无法决定它们中的哪一个并且在您尝试运行它时会发生冲突(编译通常可以正常运行而没有错误,这个问题通常发生在运行时)。

要解决此问题,请从上面的bin文件夹中删除它们,然后重建整个解决方案。不幸的是,' Clean Solution'并不总是正确地清理所有内容,因此有时必须手动完成。

提示:如果卸载项目,则可以编辑项目文件并在那里搜索程序集。它包含您指定的所有引用 - 但要注意不要弄乱它。搜索并找到所需信息后,关闭它并重新加载项目。这通常比通过项目的“参考”部分中的所有条目快得多。