ASP.NET MVC 4.0 RTM的符号在哪里?

jos*_*hls 37 asp.net-mvc-4

我正在尝试配置Visual Studio 2012以允许我进入ASP.NET MVC 4.0源代码.(System.Web.Mvc.dll).我遵循了SymbolSource的推荐配置,但是当我尝试加载符号时,Visual Studio无法找到它们.

推荐配置

要配置Visual Studio以使用符号/服务器,请按照以下说明操作:

  1. 转到工具 - >选项 - >调试器 - >常规.
  2. 取消选中"仅启用我的代码(仅管理)".
  3. 取消选中"启用.NET Framework源步进".是的,这是误导性的,但如果不这样做,那么Visual Studio将忽略您的自定义服务器顺序(请参阅下文).
  4. 选中"启用源服务器支持".
  5. 取消选中"要求源文件与原始版本完全匹配"
  6. 转到工具 - >选项 - >调试器 - >符号.选择本地符号/源缓存的文件夹.
  7. 在"符号文件(.pdb)位置"下添加符号服务器.请注意正确的顺序,因为某些服务器可能包含相同二进制文件的符号:有或没有来源.我们建议使用以下设置:

我知道CodePlex上提供了源代码,但是我特别感兴趣的是使用符号服务器来代替代码,而不必从GAC中引用Mvc并引用本地构建的程序集.

有没有人用MVC 4.0做到这一点?

Sim*_*mon 15

只需添加一个符号服务器,该服务器只提供主要版本.

试试这个,包含大多数次要版本.

http://srv.symbolsource.org/pdb/Public
Run Code Online (Sandbox Code Playgroud)

校验:

以管理员身份运行VS.

检查是否已将某些内容下载到符号缓存目录中.

转到仅选择指定的模块.添加"System.Web.Mvc.dll"

在代码中设置断点.开始调试.当断点点击任意mvc.dll行的callstack中右键单击时.验证是否已加载符号.如果已加载,请在一个callstack行上尝试dubbleclick打开mvc源.

找回遇到麻烦的地方.


小智 6

我将对Luke Gumbley的anwser做一些改进.

微软试图让开发人员的生活更轻松.每当它发布MVC版本安装程序时,也应该有一个Source来下载.因此,人们可以使用源来探索安装程序安装的内容,以及调试MVC.

回到下载MVC调试信息的方式.如果您的系统上安装了MVC4,您的Visual Studio(我使用2010)将永远不会尝试从上述服务器下载MVC PDB文件.在这种情况下,运行调试器时,Visual Studio将使用GAC中的MVC.

我尝试过Luke Gumbley建议的方式.但是,一旦卸载MVC,您的MVC项目将不会被加载,并且由于模板消失,您无法创建新的MVC项目.所以请不要松开MVC.如果这样做,您仍然需要重新安装它.这浪费了时间.

您真正需要做的是退出Visual Studio,运行命令

gacutil /u System.Web.Mvc
Run Code Online (Sandbox Code Playgroud)

然后转到C:\Windows\Microsoft.NET\assembly\GAC_MSIL,删除或重命名有问题的System.Web.Mvc文件夹.在此之后,使用Visual Studio,从NuGet获取MVC包.


Ole*_*leg 4

我无法直接回答您的问题并为您提供System.Web.Mvc.dllASP.NET MVC 4.0 的带有符号 (.pdb) 的 URL,但也许我可以帮助您以另一种方式解决问题。

众所周知(例如参见此处),Microsoft 在http://aspnetwebstack.codeplex.com/上提供了 .NET 的当前源代码。在这篇文章中,描述了如何使用ASP.NET 的Nightly 版本(代码的当前开发人员状态)。如果您之前没有使用过 Git,则在下载ASP.NET 4.5(带有 ASP.NET MVC 4.0)的RTM 版本时可能会遇到问题,您可能更愿意使用该版本而不是 Nightly 版本。尽管如此,下载 RTM 版本的完整源代码还是很容易的。您只需要知道 Git 允许在分支或标记版本中保存代码副本即可。通过这种方式,您可以访问(并下载)完整代码的某些早期版本。例如,该链接为您提供 jQuery 1.8.2,而不是另一个链接为您提供可能不稳定的最新开发人员版本。因此,要下载RTM版本的源代码,您只需选择“v2-rtm”分支,然后单击“下载”:

在此输入图像描述

您可以使用链接直接选择“v2-rtm”分支。

我可以重复一遍,这并不完全是您所要求的,而且我知道编译 ASP.NET 源代码也可能有点棘手,但我决定写下这些信息。如果有人建议您更好的解决方案,这对我来说也会很有趣。