Thursday, August 7, 2014

Admin and TFS utilities for AX 2009

For those of you reading this blog, you're probably aware by now how heavily me and my team use TFS with AX 2012. However, we've been building this knowledge since AX2009 and we've done automated builds even with AX 2009 all the way back to 2010. First we had VB Scripts, then we changed to PowerShell, and finally the custom activities, which saw a full rewrite last year ( ). Let's call the latest released activities GEN4 of our build scripts :-)
Unfortunately our builds for AX 2009 haven't kept pace. Mostly since they were "good enough" and of course our focus is mostly in AX 2012. But we are still supporting quite a few AX 2009 clients. A recent push to re-organize some of our TFS infrastructure has also pushed me to re-evaluate improving our builds for AX 2009.

So, for starters I reviewed whether the current libraries from CodeCrib.AX.TFS and dependencies would take a lot of work to make them compatible with AX 2009. In reality, there is not a ton of work to be done, but realistically there's only so much investment I wish to make for an older product. I realized that with some refactoring, it would be possible to have the existing libraries support both AX 2009 and AX 2012, but again I just don't have the time or inclination to do much of that for a handful of builds I need to do.

Against my better judgement I decided to go the quick and cheap route, and basically branch off the existing code, rename the namespace (to avoid DLL issues when both are loaded in TFS build controllers) and fix/change what needed to be changed to support AX 2009. For those of you wanting to try this out, the code is not released yet but you can surely grab a copy in the source tree on CodePlex on I'll be testing this for the next several days with our existing codebases so there may be patches coming up. However, I wanted to throw this out there, also because this has the admin utilities (including PowerShell) similar to what the AX2012 version supports, so it's not just TFS.
Note that I did not port the Setup library yet. I'm guessing that the 2012 library will basically just work with AX2009 as-is, but I could be wrong there. I've had no need for that but if anyone is interested I can definitely review it and branch it as well.

So, you'll probably see another announcement in a few weeks or so when I feel comfortable the code is working correctly. Until then, feel free to play with the activities and let me know what you find!


  1. Hi.
    Im using AX 2009 with TFS and i need to know if there is a way to checkout my intire code?
    Why i need this?
    Well we have a process when the APL and Database is refreshed from production to dev and if do an AOS sincronization, the cod from TFS will be downloded to the AX DEV, that will not be a totally bad thing if the code was not out of sinc wiht the database (ids, fields and etc) so i need a way to tell AX to refresgh the intire TFS with the current code of APl. There is a way to do that? I dont whant to checkout every single object by hand.

  2. Hey Joris,

    Thanks for all your work creating awesome tools & sharing knowledge on them.
    Just a quick one; any plans to migrate your projects from CodePlex to GitHub (i.e. as CodePlex is being decommissioned in December)?

    - CodePlex Announcement:
    - CodePlex to GitHub Migration:

    Thanks in advance,


    Potentially useful links for others following this comment:

    - Joris on CodePlex:
    - - Dynamics AX Admin Utilities:
    - - Dynamics AX Build Scripts:
    - Joris on GitHub:

    1. Thanks John. I was planning to move everything to GitHub but didn't get to it. Your note pushed me to action, so thanks for that.
      There are also some unreleased features in that source code so I put them in a develop branch and will find some time to actually release new binaries, including ones for newer versions.
      Additionally, VSTS is ditching the old-school XAML activities by end of next year or so, so I should try to release PowerShell-only versions of everything for use with the new build systems.
      So much opportunities, so little time :-)