Search code examples
tfsbuild

Converting TFS2012 XAML MSBuild build definitions to TFS2017 MSBuild definition


We recently migrated/upgraded TFS2012 to TFS2017. In TFS2017 XAML MSBuild definitions have been depreciated but are still functional. We have plans to upgrade to TFS2018 next year and need to convert approx. 300 XAML build definitions to the new TFS MSBuild engine format. Unfortunately we have de-commissioned our old TFS 2012 platform & the XAML editor. Has anyone done these conversions or going thru the manual process of creating a new build definition from scratch? Is there a tool for conversion or clone that I am not seeing in TFS2017? I searched all the TFS tags for this issue and have found none. We have a year to convert 300 build definitions & I don't want to wait until last minute. Appreciate any feedback.


Solution

  • For the web-based, cross-platform build system--vNext build, that is the only model we support in TFS2018. XAML builds are not supported in TFS 2018. We encourage you to migrate your XAML builds. If you're not yet ready to migrate and need to continue using XAML builds, then you should not upgrade to TFS 2018.

    When you upgrade to TFS 2018:

    • If you have any XAML build data in your team project collection, you'll get a warning about the removal of XAML build features.
    • In TFS 2018, you'll be able to view completed XAML builds, but you won't be able to queue new ones.
    • There's no new version of the XAML build controller or agent in TFS 2018, and you can't configure an older version of the XAML build
      controller or agent to work with TFS 2018.

    However, for migrating from XAML to vNext, there is no general purpose automated way to do this. The systems are different enough that you really just need to create new build definitions that do what you want. For people who have done heavy customizations (like writing custom workflow tasks), this will be real work. The good news is that the newer system has a wide array of easy to use tasks – both “in the box” and available in the marketplace.

    Here are some docs on migrating old XAML and creating new vNext build definitions: