I didn't write it (Peter Hallam did), but I was just using it and thought "wow, this is cool, it needs to be found by more people!"

If you build console apps that take multiple arguments (generate.exe /vroot:vbasic /target:c:\files\ ... etc.) then this makes it very easy. To use it, just compile the provided code into a library and reference from your own C#, VB.NET, etc. application.

From the readme;

Command Line Argument Parser
----------------------------

Author: peterhal@microsoft.com

Parsing command line arguments to a console application is a common problem.
This library handles the common task of reading arguments from a command line
and filling in the values in a type.

To use this library, define a class whose fields represent the data that your
application wants to receive from arguments on the command line. Then call
Utilities.Utility.ParseCommandLineArguments() to fill the object with the data
from the command line. Each field in the class defines a command line argument.
The type of the field is used to validate the data read from the command line.
The name of the field defines the name of the command line option.

The parser can handle fields of the following types:

- string
- int
- uint
- bool
- enum
- array of the above type