Search code examples
tfsguidagiletfs-2015tfs-process-template

TFS 2015: Version-Error uploading custom process template


I've created a customized process based on the Agile process and have already done all prescribed steps noted in this post: TFS 2015 won't upload custom process template however when I change the version type to something different I receive this error during the upload process:

Time: 2016-04-21T08:37:48
Module: Template Importer
Exception Message: The remote server returned an error: (400) Bad Request. (type WebException)Status: ProtocolError
Response Status Code: BadRequest
Response Status Message: VS402452: The process template did not specify a version, or specified an invalid version

Exception Stack Trace:    at System.Net.HttpWebRequest.GetResponse()
   at Microsoft.TeamFoundation.Framework.Client.TeamFoundationProcessTemplateService.AddUpdateTemplate(String name, String description, String metadata, String state, String zipFileName)
   at Microsoft.VisualStudio.TeamFoundation.PCW.TemplateManagementService.UpLoadTemplateFile(TemplateData data, FileInfo templateZipFile, ELeadLogger log)
   at Microsoft.VisualStudio.TeamFoundation.PCW.TemplateManagementService.Import(String folderPath, ILogHandler logHandler)

Is there a list of 'acceptable' version types? The msdn documentation for TFS 2015 indicates that by uploading a customized process template it will not touch any of the existing processes, but this error seems to contradict that notion.

Any ideas? Been chomping away at this one for a day and everything else is ready to go once this one roadblock is cleared. Thanks!


Solution

  • The default templates have been locked with the release of TFS 2013 update 3 or 4. So now you'll need to change the type GUID to be unique for your template and the name.

    You'll find the process template version in the ProcessTemplate.xml in the root of your Process Template folder:

    <?xml version="1.0" encoding="utf-8"?>
    <ProcessTemplate>
      <metadata>
        <name>Scrum 2015</name>
        <description>This template is for teams who follow the Scrum framework.</description>
        <version type="6B724908-EF14-45CF-84F8-768B5384DA46" major="3" minor="33" />
        <plugins>
        ...
      ... 
    ...
    

    If your template doesn't have this tag already, you'll need to add it.

    If you create a custom template you must also override the GUID and the name with your own values and that should get you onlocked.

    <?xml version="1.0" encoding="utf-8"?>
    <ProcessTemplate>
      <metadata>
        <!-- new name -->
        <name>Custom Scrum 2015</name>
        <description>This template is for teams who follow the Scrum framework.</description>
        <!-- add/override version and set a new guid -->
        <version type="276d0f20-c2f9-4077-8199-e81a8cc47012" major="1" minor="0" />
        <plugins>
        ...
      ... 
    ...