I work on a project that uses a large number of NAnt files that change frequently. We have a huge number of support targets as well, so simply displaying all of the targets in a file wasn't going to be effective. So, I made NAnt Assistant as a GUI for working with NAnt files with a focus on simplicity and usability.

I designed it to work standalone, so that it can simply be dropped into place and used. The project comes with a .config file but this file is not required, a number of command line arguments can be used to accomplish the same thing as the config file.


I looked around for a project that accomplished what I needed and I found it to be lacking. NAnt-GUI was the closest I could find, but it was attempting to accomplish a lot more than I needed and which led it to being a lot more cumbersome for the simple actions I needed.

Keyboard Commands

As a software engineer, tools that allow me to keep my hands on the keyboard is generally preferable. I kept that in mind when designing this tool. As the interface is very simple, there are not a lot of commands, but hopefully those that exist are very useful.

Select Targets by Number

As all of the targets are enumerated you can simply use the keyboard to enter the number to select targets. Once you've enter the number you need, press either Enter/Return or the keypad decimal to select the target. You can use either the number pad or normal keyboard digits.

Example: 1 2 . selects target 12
Example: 2 + Enter selects target 2

Once a number is pressed, it is held for 5 seconds waiting for either enter or any follow up number. Pressing another number resets the timer.

Highlight Targets

The up and down arrows can be used to highlight targets. Once a target is highlighted, pressing the spacebar, left and right arrow will toggle the selection (i.e. select if not selected, unselect if selected).

Change Tabs

Pressing the tab key will rotate through the three on screen tabs: Targets, Properties and Output. The tab key will wrap around the beginning as I didn't implement Shift+Tab to go backwards.


Using enter/return will start the run if there are no pending numbers to process.

Entering Properties

When on the property management tab, after entering a property you can press enter to automatically add the property.

After add focus will be placed in the property name input again to make the process easy.

Command Line Arguments

  • -n : This is the path to the NAnt executable.
  • -f : This is the path to the default NAnt file to load.
  • -p : This is used for any defaulted properties and can be entered multiple times. The property information is expected in the format name=value. So a property would be set by the command line by entering "-p build_loc=../../builds".

Last edited Mar 6, 2013 at 11:19 PM by tomestephens, version 4


No comments yet.