Keeping multiple assembly lists with Reflector

This is an old post and doesn't necessarily reflect my current thinking on a topic, and some links or images may not work. The text is preserved here for posterity.

The absolute, #1 tool in every developer's D:\Tools directory should be Reflector. Reflector allows you to explore, disassemble and otherwise "research" .NET assemblies.

Lately I often find myself switching between multiple framework versions:

  • .NET 3.5 SP1
  • .NET 4.0
  • Silverlight 4.0

To switch between these frameworks, I use a little trick. I keep a Reflector.cfg file for each framework, and use a start menu shortcut to launch them:

My start menu, with three different Reflector shortcuts

Each shortcut points to a different .cfg file. The shortcut just needs to pass the /configuration variable to Reflector.exe:

D:\Tools\Reflector\Reflector.exe /configuration:"D:\Tools\Reflector\Configs\NET40.cfg"

Creating a configuration file is easy - just use the command above with a file that doesn't exist - for example:

Reflector.exe /configuration:"MyNewList.cfg"

You'll then be asked to populate the list:

Populating an assembly list

At this point, I like to drag in any extra assemblies I often use with that framework version:

  • For Silverlight, you can check under
    C:\Program Files (x86)\Microsoft SDKs\Silverlight\v3.0 C:\Program Files (x86)\Microsoft SDKs\Silverlight\v4.0
  • For WPF developers, try:
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF

(If you don't have a 64-bit machine, change the paths appropriately)

Don't forget to also include other assemblies you often use, like:

  • Autofac DLL's
  • NHibernate DLL's
  • Enterprise library DLL's
  • Composite WPF DLL's
  • ASP.NET MVC DLL's
  • Magellan DLL's :)

Once you have all the assemblies you need, you can close Reflector - your list will be saved. You can re-open it again by creating a shortcut using the same .cfg file.

The final step is to mark the configuration file as read-only. I often open Reflector and drag in any crazy DLL I find during the course of the day to look at. Reflector saves these in your config file by default, and the next time you open it, you might find the list getting a bit messy. Marking the files read only solves this.

While we're on the topic, don't forget to look at the Reflector Add-In's project on CodePlex. My personal favourite add-ins are: