Keeping multiple assembly lists with Reflector

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:

(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
  • 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:

A picture of me

Welcome, my name is Paul Stovell. I live in Brisbane and work on Octopus Deploy, an automated deployment tool for .NET applications.

Prior to founding Octopus Deploy, I worked for an investment bank in London building WPF applications, and before that I worked for Readify, an Australian .NET consulting firm. I also worked on a number of open source projects and was an active user group presenter. I was a Microsoft MVP for WPF from 2006 to 2013.

Jiho Han
Jiho Han
09 Jun 2010

Thanks for the tip. It seems that the configuration option is looking for a full path. I tried it with a relative path and it did not work - It fails to create it if I point it to a non-existing file and if I do point it at an existing file, it will not save any changes.