Wednesday, February 06, 2008

Download all the .Net Source/Reference code/PDB's at once with .Net Mass Downloader

John Robbins' Blog - Download All the .NET Reference Source Code at Once with Net Mass Downloader

"Microsoft has really helped out the development community by making the .NET Reference Source Code available to the community. Being able to step in the debugger from your code to the Framework code truly helps with you understanding and use of all parts of .NET. The only drawback I've seen with what Microsoft is offering is that the source code can only be downloaded while you're debugging. ...

It turns out I wasn't the only one who had the same wishes. Kerem Kusmezer contacted me and said that he'd been hacking around with Fiddler and figured out how to download the PDBs and code from Microsoft. He asked if I I'd be interested in helping him develop the utility and I don't think I ever wrote a response faster in my life! Kerem had already started a discussion with Shawn Burke about the legality of producing a source downloader and once we got back a very encouraging "go for it" we got to work. ...

The tool is called Net Mass Downloader and we made the source code available at CodePlex at so you can see how it works. It's a command line tool and running the tool without parameters produces the following output:


If you want the .Net reference/source code, but don't want to wait for it to download "on demand," the .Net Mass Downloader utility built just for you...


Related Past Post XRef:
It's .Net Source Day! Let the Source Loose.... Today is the day you can configure VS2008 to grab the actual source code to the .Net Framework and step into it as you debug...


miken said...

Hey, this doesn't download the actual source. I ran...

D:\MSSourceMassDownloader>netmassdownloader -v -output "d:\mssourcemassdownloader\src" -d "C:\Windows\Microsoft.NET\Framework\v2.0.50727"

which pulled down a bunch of stuff, but every single file, ex (D:\MSSourceMassDownloader\src\redbits\ndp\clr\src\BCL\System\MulticastDelegate.cs)

has a EUL in it instead of code. i.e.

TITLE:End User License Agreement
BUTTONDESCRIPTION:Please read carefully and understand the license agreement above. If you want to accept the license agreement, please click the “Accept” button.
TEXT:This license applies to the .NET Framework components that Microsoft makes available to you in source code form. To print these terms, select the contents of this area and copy then paste into an application that can print text.


This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
1. Definitions
The terms "reproduce," "reproduction" and "distribution" have the same meaning here as under U.S. copyright law.

"You" means the licensee of the software, who is not engaged in designing, developing, or testing other software, for a non-Windows operating system, that has the same or substantially the same features or functionality as the software.

Am I missing something?

Greg said...

Not sure... I've not yet had a chance to try it yet.

You are using VS2008? And have it setup to download the source?

I seem to remember that the first time I downloaded the reference/source while debugging in VS2008 that I got a EULA that I had to agree too...

Greg said...

Just in case you didn't see it...
V1.1 of the Downloader has been released.

Thanks for the heads up Kerem.

So if you're having problems, make sure you get the latest version from its CodePlex project page...