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.
Requirements
- 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.
Example
You can now do more elaborate things like:
<udm.DeploymentPackage application="<%TeamProject%>" version="<% TodayName %>-<% BuildNumber %>">
<deployables>
<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 {
{"TodayName", DateTime.Today.DayOfWeek.ToString},
{"OtherParam", "SomeValue"}}]"
...
...
Release Notes
XL Deploy TFS plugin 5.0.0
Improvements
- [DEPL-7622] - Allow external artifact reference to be supplied in XLD plugin for TFS
XL Deploy TFS plugin 4.5.1
Improvements
- [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
Improvements
- [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