【问题标题】:Debugging ASP.NET MVC source?调试 ASP.NET MVC 源?
【发布时间】:2009-06-02 19:09:44
【问题描述】:

尝试调试到 ASP.NET MVC 1.0 源代码时,我按照these 之类的说明进行操作,基本上从我的 Web 项目中删除了对 system.web.mvc 的引用,并添加了我下载的源项目。

现在,我有这个问题,

类型“System.Web.Mvc.FormMethod” 存在于两者中 'c:\Windows\assembly\GAC_MSIL\System.Web.Mvc\1.0.0.0__31bf3856ad364e35\System.Web.Mvc.dll' 和我的 AppData\Local\Temp\Temporary ASP.NET Files\root\dbcbb149\897fc019\assembly\dl3\796c00fb\f345f2d6_abe3c901\System.Web.Mvc.DLL'

我尝试从 web.config 中注释掉以下内容

<add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

但它会给出不同的错误

类型“System.Web.Mvc.Controller” 在不是 参考。您必须添加参考 组装'System.Web.Mvc, 版本=1.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35'。

有人可以帮助解决问题以及如何解决它。非常感谢!

雷。

【问题讨论】:

  • 听起来您在 Bin 和 GAC 中有一份副本。您的 bin 文件夹中是否有 System.Web.Mvc 的副本(确保您正在查看所有文件)
  • 我引用了源项目,所以编译后我的bin里会有一个副本。

标签: asp.net-mvc debugging


【解决方案1】:

无需从 GAC 卸载 ASP.NET MVC! (或任何&lt;assemblyBinding&gt;s) 只需按照“Using the ASP.NET MVC source code to debug your app”文章一步一步操作即可。

有几个问题与你的类似:

【讨论】:

  • 我看到了我错过的地方,你的第二个链接有帮助,
【解决方案2】:

GAC 中有 system.web.mvc 程序集吗?您可能需要删除它们...这当然会扰乱未来的项目,因为项目模板可能会假定它们在 gac 中。

您也可以尝试使用 &lt;assemblyBinding&gt; 功能作为 described here 将 mvc 内容指向您正在运行的版本。

【讨论】:

  • 是的,我使用 Web PI 安装了 mvc,所以它在 GAC 中。有没有更简单的方法来解决这个问题。我真的不想从 GAC 中删除或卸载它。
【解决方案3】:

假设您要链接的程序集的完全限定程序集名称与 GAC 中的程序集名称不同,请使用 &lt;QualifyAssembly&gt; element 并指定您实际链接到的程序集。如果没有,请更改您的本地源以将您正在构建的 MVC 程序集更改为 1.0.0.1,以便它有所不同。

编辑:仔细检查您链接的操作方法。它对我有用。

  1. 删除了我项目中的 system.web.mvc 引用。
  2. 从源代码添加了 System.Web.Mvc 项目。
  3. 注释掉我项目的 web.config 中的 System.Web.Mvc 引用。
  4. 修改了 System.we.b.mvc 的 /Views/Web.Config,如操作指南中所述。
  5. 完美运行。

【讨论】:

  • 不太清楚它是如何工作的,你有我可以用来完成这项工作的确切 行吗?尝试将其更改为 1.0.0.1,并没有真正起作用。
  • 查看 Richard 的回答,您可能必须更新 mvc 项目的程序集信息,以便版本与 GAC 中的版本不同。
  • 根据 codeville 文章,确保您的项目对 system.web.mvc 的引用设置为“Copy Local”为“true”
【解决方案4】:

对于合格的组装部分,您想要这样的东西(我们为 SQLite 组装做):

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <qualifyAssembly partialName="System.Data.SQLite" fullName="System.Data.SQLite, Version=1.0.60.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </assemblyBinding>
  </runtime>

【讨论】:

    【解决方案5】:

    查看这篇文章以获取有关如何setup MVC source 的完整指南。

    您需要更新两个 web.config 文件。一个在 MVC 项目文件夹中,一个在 Views 文件夹中。您很可能忘记更新后者。否则按照上述文章应该这样做。

    【讨论】:

    • 阅读并关注,我认为的web.config和文章中的不一样
    【解决方案6】:

    Steve Sandersons 指令can be found here 的更全面的版本。

    它解释了如何在调试中包含 MVC 期货。

    【讨论】:

      猜你喜欢
      • 2014-09-19
      • 2017-06-13
      • 2012-07-21
      • 1970-01-01
      • 2010-11-06
      • 2011-09-02
      • 2011-10-18
      • 1970-01-01
      • 2013-11-13
      相关资源
      最近更新 更多