You use .NET Reflector regularly. You know what Resharper is, and with any luck you’ve talked your boss into buying you the license (if he won’t, I highly recommend you to pay for it by yourself, it’s WELL worth the money). You may even know that Microsoft has released the source code for .NET Framework, complete with variable names and comments. What you probably do NOT know is that you can bring this all together for a seamless experience. Imagine: you Ctrl+Left-Mouse-Click on a class name, be it third-party or Microsoft, and it shows you the source code, complete with comments, or, if source code is not available, brings up the Reflector. Getting Reflector to work is pretty easy, but getting the .NET sources download to work is a little trickier.
Here’s how to set it up:
- Get Visual Studio 2008 (regular or SP1) or 2005
- Install Resharper 4.1 or 4.5
- Install Reflector
- Install Scout plug-in for Resharper
- Make sure you have .NET Framework 2.0 SP1/SP2 and 3.5 SP1
- If you run Visual Studio 2008 pre-SP1 you may need to install this hot-fix for VS 2008 that “updates a DLL that’s part of the Visual Studio debugger that fetches the source” but don’t do this until you run into issues after doing all the steps below
- If you run Visual Studio 2005, you will have to manually install Microsoft Debugging Tools and copy srcsrv.dll & symsrv.dll into your Program Files\VisualStudio\Common7\IDE folder
- Configure Visual Studio as per Microsoft’s instructions, most importantly
- Uncheck “Enable Just My Code (Managed only)”
- Check “Enable source server support”
- Uncheck “Require source files to exactly match the original version”
- Check “Enable .NET Framework source stepping” – VS 2008 only
- Add http://referencesource.microsoft.com/symbols as the first location of symbol files (or, in my case, the only location)
- Set the symbols cache folder and make sure the folder exists
- Clear “Search the above location only when symbols are loaded manually”
- In VS 2008, the two buttons at the bottom of Options -> Debugging -> Symbols dialog will stay disabled, that’s Ok!
- Go to Resharper -> Options -> Search and Navigation -> Scout
- specify path to .NET Reflector
- make sure both “Recover source locations from program debug database (pdb) files” and “Use Red Gate .NET Reflector” are enabled.
- Select “use debugger settings” for the .NET source location
- You may need to restart Visual Studio and/or reload the solution.
Now, with any luck you should be able to “Go To Declaration” of any symbol and see its source code, either natively, or in Reflector, or, like I say you can just Ctrl+Left-Mouse-Click! Of course you can also step-by-step debug .NET sources, even w/o Resharper or the Scout plugin.

P.S. If source files for a given class can’t be downloaded, Scout automatically launches Reflector. Since loading source for a particular class takes a while, first few times you Ctrl+Click on it it may bring up the Navigate menu I shown above. This does not mean the feature does not work but most probably you’ll have to cancel the menu and try again a few times until it loads the source. Depending on your OS version and platform some classes will never work no matter how many times you try. For me, IDictionary<TKey, TValue> does not work while Object and String do.
