Changes to TFS Deployer from TFS 2008 to TFS 2010
In TFS 2008, build definitions referred to a Project File. These Project Files, named "TfsBuild.proj" were each located in their own folder, by default named after their associated build definition, and stored in the "TeamBuildTypes" folder
in the Team Project's source control root. For example, the Project File for a build definition called "Foo.Nightly" in Team Project "Foo" would be located at "$/Foo/TeamBuildTypes/Foo/TfsBuild.proj". TFS 2008 also supported
Project Files being stored below locations other than the "TeamBuildTypes" folder.
For TFS 2008, TFS Deployer would look for a "Deployment" folder in the same location as the build definition's Project File and within that, the DeploymentMappings.xml file and any scripts.
In TFS 2010, build definitions are now based on Build Process Templates. These Templates, which are Workflow Foundation xaml files, can have any name and therefore can, and are by default, located together in a single folder. For example, a new Team Project
"Foo" will have at least the "DefaultTemplate.xaml" and "UpgradeTemplate.xaml" Build Process Template files located at "$/Foo/BuildProcessTemplates/". Like 2008, TFS 2010 also supports Build Process Templates being stored
anywhere in source control. In TFS 2008 it was possible for multiple build definitions to share one Project File but uncommon, in TFS 2010 however it is the default scenario and TFS Deployer has changed to accommodate this.
TFS Deployer for TFS 2010 will still look for a "Deployment" folder in the same location as the build definition's Build Process Template file but the DeploymentMappings.xml file within has changed.
- The XML namespace for the document has been updated so the root node now looks like this:
- The Mapping elements now support an attribute to constrain matching build definitions by regular expression:
<Mapping BuildDefinitionPattern="^Foo\.Nightly$" ... />
- The Mapping element's NotificationAddress attribute is now required because TFS Deployer no longer has a default value its configuration file.
- The Mapping elements should not have an "xmlns" attribute, remove it if one exists.