Microsoft Team Foundation Server Plugin Reference

    The XL Deploy plugin for Microsoft Team Foundation Server (TFS) plugin provides automated deployment functionality for TFS 2010, TFS 2012, and TFS 2013.

    This document provides information that is specific to this version of the plugin. For general information about the plugin, refer to Introduction to the Team Foundation Server XL Deploy plugin.


    • XL Deploy 5.0.0 or later
    • Team Foundation Server 2010, TFS 2012, or TFS 2013

    Upgrading to TFS Plugin 4.0.0 or later

    In TFS plugin version 4.0.0, automatic replacement of the application version in the manifest was replaced with a more general mechanism. This requires you to replace the dummy version attribute value in the manifest's root tag with the explicit value version="<% BuildNumber %>". See the section on placeholder replacement for more information.

    Also, be aware that a new DLL is added to the TFS-plugin. Be sure to check it into TFS, in addition to updating the other TFS-plugin DLLs.

    Placeholder replacement in the manifest

    Manifest handling has changed in version 4.0.0 of the TFS-plugin. To emulate the pre-4.0 behavior, change the manifest root tag's version attribute as follows:

    <udm.DeploymentPackage application="MyApplication" version="<% BuildNumber %>">

    Prior to XL Deploy TFS plugin version 4.0, the version attribute of the provided manifest file was always automatically overwritten by the TFS build number during package creation. As of version 4.0, this is no longer the case. Instead, a more general placeholder replacement mechanism has been put in place, where anything between <% and %> will be replaced.

    All public properties from TFS' BuildDetail struct are available; see the BuildDetail Properties MSDN page for an overview. You can provide additional values for this replacement by setting the CreatePackage task's ReplacementDictionary parameter.

    If a placeholder key is present both in the ReplacementDictionary and among the BuildDetail properties, the value from the ReplacementDictionary will take precedence.

    The placeholder replacement mechanism is Nustache with the default placeholder indicators changed to <% and %>, so as not to interfere with XL Deploy placeholders. Refer to Mustache for more information.


    You can now do more elaborate things like:

    <udm.DeploymentPackage application="<%TeamProject%>" version="<% TodayName %>-<% BuildNumber %>">
        <iis.ApplicationPoolSpec name="<%TeamProject%> app pool">

    TeamProject and BuildNumber will be taken from the TFS BuildDetail. TodayName is not a BuildDetail property and should therefore be provided through the CreatePackage's ReplacementDictionary parameter. For example, the build template XAML would include:

    <xdw:CreatePackage ApplicationName="[ApplicationName]"
                       ReplacementDictionary="[New Dictionary(Of String, String) From {
                                {&quot;TodayName&quot;, DateTime.Today.DayOfWeek.ToString}, 
                                {&quot;OtherParam&quot;, &quot;SomeValue&quot;}}]"

    Release Notes

    XL Deploy TFS plugin 6.0.0

    Bugs fixed

    • [DEPL-10336] - TFS fails with NPE if deployed applications has more than one orchestrator

    XL Deploy TFS plugin 5.0.0


    • [DEPL-7622] - Allow external artifact reference to be supplied in XLD plugin for TFS

    XL Deploy TFS plugin 4.5.1


    • [DEPL-7481] - Add support for TFS 2013 (TFVC and Git template)

    Bugs fixed

    • [DEPL-6964] - Big deployments through TFS fail because of HTTP timeout

    XL Deploy TFS plugin 4.5.0

    Bugs fixed

    • [DEPL-5899] - Package creation with TFS plugin fails with "unable to invoke target"
    • [DEPL-6685] - Error "An item with the same key has already been added" thrown when same directory present multiple times in manifest

    XL Deploy TFS plugin 4.0.0


    • [DEPL-5421] - Pass XL Deploy errors to TFS front-end/logs
    • [DEPL-5563] - Support placeholders in deployit-manifest.xml

    XL Deploy TFS plugin 3.9.2

    Bugs fixed

    • [DEPL-4931] - Improve manifest editor docs re SSL and self-signed certificates
    • [DEPL-5288] - TFS custom activities leak credentials in the TFS logs
    • [DEPL-5289] - TFS custom activities eat exception messages on deployit connect
    • [DEPL-5330] - TFS:Somehow password is getting saved in TFS
    • [DEPL-5389] - TFS plugin not encoding file names correctly in dar.
    • [DEPL-5419] - Manifest Editor cannot handle Deployit context root other than '/deployit'

    Deployit TFS plugin 3.9.1

    Bugs fixed

    • [DEPLOYITPB-4771] - TFS custom activity "Create Deployment Task" does not invoke autoPrepareDeployeds