Last Tuesday, the MSBuild Explorer team began working full-time on the powertoys for MSBuild. These powertoys will be released online sometime in the next few weeks, along with their sources. Thus far, we've done the following:
- Color Logger: As Charley showed in his last post, this is an improved console logger. The goal is to make the console output much more readable, and to provide an example of a custom logger for you to play with. Charley and Eyiwunmi have been working on this. (I believe this is basically complete and unit tested)
- Miscellaneous tasks library: Roshni and I are working on a set of tasks to extend the functionality of MSBuild. Tasks are functions that are executed during the build process by MSBuild. Here's what we've completed:
- Move: Moves a file or directory to the local destination of choice. Also includes functionality to move multiple files or directories (completed and unit tested).
- Email: Sends an email (completed and unit tested).
- Project template for an MSBuild Task: I've been working on this recently. This template will set up everything you need to create a new task, including setting the debugger to be able to step into it. Templates will be in C#, J#, and Visual Basic. Only about an hour of work left on these.
- Project template for an MSBuild Logger: I'm working with Eyiwunmi on this now. This will set up a skeleton logger in either C#, J#, or Visual Basic. Not much left to do on these either.
Note that although we've completed these, it may be a few weeks before these are actually available publicly for download, but we'll post here when we have a link.
And here's what we have planned:
- XML Logger: Logs each build event to an XML file.
- Other Tasks:
- XSD: Generates types from XDR, XML, and XSD files or from classes in a runtime assembly.
- NAnt: Calls NAnt.
- Sleep: Pauses the build for the specified length of time.
- GetFilesFromURL: Creates an item based from a URL.
- GetFilesFromFTP: Similar to GetFilesFromURL.
That's all we have on our plate at the moment. If you have an idea for a task or general extra along these lines, please let us know.