Невозможно сказать, в общем.
Если вы создаете (или редактируете) шаблон процесса, вы можете поместить идентификатор в свойство, тогда вы сможете отслеживать, какие проекты имеют ваш шаблон (ы)
Для этого:
Редактировать Classification \ Classification.xml
добавить узел:
задачи / задачи / taskXml / недвижимость / недвижимость
как это:
<property name="templateName" value="myTemplate_1.0.1" />
Как только у вас есть проекты, созданные с помощью этого шаблона, в объектной модели вы сможете извлечь эту информацию из проекта:
TfsTeamProjectCollection c = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(myuri);
WorkItemStore wis = tpc.GetService();
ICommonStructureService ICss = tpc.GetService();
foreach (Project p in wis.Projects)
{
string ProjectName = string.Empty;
string ProjectState = String.Empty;
int templateId = 0;
ProjectProperty[] ProjectProperties = null;
ICss.GetProjectProperties(p.Uri.ToString(), out ProjectName, out ProjectState, out templateId, out ProjectProperties);
Console.WriteLine("Project: {0}\tTemplate: {1}", ProjectName, ProjectProperties.Where(n => n.Name == "templateName").FirstOrDefault().Value);
}
templateId всегда равен -1, так что не думайте, что это вам поможет.
Кроме того, если у вас есть права, я рекомендую добавить это свойство во все шаблоны (даже шаблоны по умолчанию) в вашей коллекции, чтобы вы могли отслеживать шаблоны всех будущих проектов. Не знаю, почему они не включили его в шаблоны по умолчанию. (если достаточно людей будут жаловаться, может быть, они будут)