Windows XP Embedded supports an update mechanism called Device Update Agent (DUA), this device update service uses a script language to define the way in which a Windows XP Embedded device would be updated - some time ago, Aaron Stebner and I wrote a skunk tool called DUAScriptGen to make it easier for developers to generate script files without needing to know the underlying script language.

I started working on DUAScriptGen because I needed to give a demo of Device Update Agent running on a Windows XP Embedded operating system - the demo was to be a "Live Demo" that showed how to create the underlying DUS (Device Update Agent Script) file, compile the script and then update a Windows XP Embedded image. The documentation for the DUA script language was 20+ pages long - and quite frankly I didn't want to spend the time learning the script language - it seemed like a good time investment to create a skunk too (originally just for the demo!) that created the script file - I could then open the script file in Notepad, show everyone what the script looked like and then complete the demo. Interestingly, the developer audience immediately wanted a copy of the tool!

Aaron, who at that time was working in the Windows XP Embedded team had some brilliant ideas for enhancing the DUAScriptGen tool - for example, QFEs ship with a .INF file that defines the contents of the QFE - Aaron implemented the code to import a .INF file and generate a DUA script file!

The DUAScriptGen tool has now been released (as source and binary) to CodePlex

Here's a quick <snip> from Aarons blog.

  • Download the latest release of DUAScriptGen - http://www.codeplex.com/duascriptgen/Release/ProjectReleases.aspx?ReleaseId=10568
  • Report issues with the latest release, make suggestions for new features and vote on existing issues - http://www.codeplex.com/duascriptgen/WorkItem/List.aspx
  • Download the source code to see what DUAScriptGen does behind the scenes, and if you choose, fix bugs and contribute the fixes back to the project - http://www.codeplex.com/duascriptgen/SourceControl/ListDownloadableCommits
  • It does make me wonder why we don't have more tools like this - for example it would be awesome to have a tool that made it easy for developers to create, and edit DPWS XML files - I know that I would prefer to spend my time coding up the functionality of a system rather than spending time reading the XML schema specification for Devices Profile for Web Services, and then spend more time in Notepad hand crafting an XML file.

    - Mike