Tidying code
Prefix rather than suffix generated DLLs with "mdef"
Added .NET runtime version to compiled macrodef filename

If you try using multiple versions of NAnt, then if macrodefs are first compiled with a higher-framework version of NAnt and then try to be used with an earlier version of NAnt, this fails. By including the runtime version of the .NET framework in the compiled filename, multiple versions of NAnt can work side-by-side, which is useful for supporting different builds on the same machine.
Tidied build file