Where are the symbols for ASP.NET MVC 4.0 RTM?

前端 未结 7 1109
既然无缘
既然无缘 2020-12-24 01:30

I\'m trying to configure Visual Studio 2012 to allow me to step into ASP.NET MVC 4.0 source code. (System.Web.Mvc.dll). I\'ve followed SymbolSource\'s recommend

相关标签:
7条回答
  • 2020-12-24 01:54

    I will make some refinements to Luke Gumbley's anwser.

    Microsoft tries to make a developer's life easier. Whenever it release an MVC version installer, there should also be a Source to download. So people can use the source to explore what is installed by the Installer, as well as to debug the MVC.

    Back to the way of downloading the MVC debug info. Your Visual Studio (I use 2010) will never try to download MVC PDB files from the aforementioned servers if you have MVC4 installed on your system. In this case, your Visual Studio will use the MVC from your GAC when you run debugger.

    I have tried the way suggested by Luke Gumbley. However, once you uninstall MVC, your MVC project will not be loaded, and you cannot create a new MVC project since the Template is gone. So please don't unistall MVC. If you do so, you still need to reinstall it. This wastes time.

    What you really need to do is exit your Visual Studio, run command

    gacutil /u System.Web.Mvc
    

    Then go to C:\Windows\Microsoft.NET\assembly\GAC_MSIL, remove or rename the offending System.Web.Mvc folder. After this, lanuch your Visual Studio, and fetch the MVC package from NuGet.

    0 讨论(0)
  • 2020-12-24 02:00

    I had exactly the same issue (correct version but no symbols), but after a day or so of trying everything I've been able to get it working. These are catch-all instructions that worked for me, they may contain unnecessary steps:

    1. Sign up for SymbolSource and follow the VS instructions using the authenticated URL form
    2. Uninstall all versions of MVC with add/remove programs
    3. Remove MVC assembly from the GAC (the question is about modifying MVC but the GAC answer is good)
    4. Remove and then reinstall the MVC 4 reference to your project with NuGet
    5. Start debugging, open the modules window, and cross your fingers that ‘Symbols loaded’ is next to System.Web.MVC when it appears.

    (sprinkle in restarts as you see fit, for me the key final step was reinstalling the NuGet reference)

    My theory is that as the GAC library is used at runtime in preference to the local reference, the symbols are not found when they are searched for. By removing MVC from the GAC and then reinstalling the NuGet reference, it seems the local reference is used and the symbols are found. It's counterintuitive as the System.Web.MVC.dll files are binary-equivalent between NuGet and the GAC, although they are dated differently.

    I'm not totally convinced though as I tried to do the same thing for Razor and that didn't work.

    0 讨论(0)
  • 2020-12-24 02:00

    Let me start with that ReSharper provides a handy dialog to step in the code at any time:

    enter image description here

    So you get the following code screen if you drill to the source code:

    enter image description here

    But I became curious to accomplish this by hand. I started with proper pdb configuration:

    enter image description here

    After that I got the following error:

    enter image description here

    Next I copied the C:\Users\Andrew\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbols\System.Web.pdb\CA49C4332DE847FA967F58AFF370B70E1\System.Web.pdb to C:\Users\Andrew\AppData\Local\Temp\SymbolCache\System.Web.pdb (to match the lookup path). After that i encountered this:

    enter image description here

    And it turned out that the mismatching builds are only good for browsing the source, not debugging. (Current machine has VS2012 RC, hence MVC libraries are not RTM). If they match, you'll the the source.

    I still don't know why doesn't the lookup path adjust to symbol configuration. Hope this helps.

    0 讨论(0)
  • 2020-12-24 02:01

    I can't answer on your question directly and provide you URL with symbols (.pdb) for System.Web.Mvc.dll for ASP.NET MVC 4.0, but probably I can help you to solve the problem in another way.

    As well known (see here for example) Microsoft provide the current source code of .NET on http://aspnetwebstack.codeplex.com/. In the post it's described how to use the Nightly version of ASP.NET (the current developer state of the code). If you didn't used Git before you can have problems with downloading RTM version of ASP.NET 4.5 (with ASP.NET MVC 4.0) which you could prefer to use instead of Nightly version. Nevertheless the downloading of the full source code of RTM version is easy enough. You need just to know that Git allows to save copy of the code in branches or tagged versions. In the way you can get access (and download it) to some previous versions of the full code. The link for example provide you jQuery 1.8.2 instead of another link get you the latest developer version which can be unstable. So to download the source code of RTM version you just need to choose "v2-rtm" branch and then click on "Download":

    enter image description here

    You can use the link to select "v2-rtm" branch directly.

    I can repeat that it's not exactly what you asked and I know that compiling of ASP.NET source code could be also a little tricky, but I decided do write the information. If somebody would suggest you the better solution it would be interesting for me too.

    0 讨论(0)
  • 2020-12-24 02:04

    Just add a symbol server that serves more then just major releases.

    Try this one, contains most minor builds.

    http://srv.symbolsource.org/pdb/Public
    

    Verify:

    Run VS as administrator.

    Check that something have been downloaded to your symbol cache directory.

    Goto select only specified modules. Add "System.Web.Mvc.dll"

    Set a break point in your code. Start debug. When break point hits rightclick in callstack on any mvc.dll row. Verify that symbols are loaded. if loaded, try dubbleclick on one callstack row to open mvc source.

    Get back with where you get in trouble.

    0 讨论(0)
  • 2020-12-24 02:12

    There's some related info here: http://aspnetwebstack.codeplex.com/discussions/399312 And here: Debug into nightly build of ASP.NET MVC4 using Symbolserver

    0 讨论(0)
提交回复
热议问题