В нашем магазине установлен сервер Team Foundation 2005, но вся работа по разработке выполняется в Visual Studio 2008.
Что я хотел бы сделать, так это написать программу, которая анализирует историю сборки заданного Определения сборки и извлекает результаты теста для создания симпатичных графиков, которые Team Build действительно не дает.
Однако у меня проблемы с получением службы сборки из TFS API. Ссылка на библиотеки TeamFoundationClient в VS2008, очевидно, дает мне клиентские объекты TFS2008, а TFS2005 позволяет мне подключаться, но я не могу запросить службу сервера сборки 2008:
TeamFoundationServer teamServer = TeamFoundationServerFactory.GetServer(m_tfsServerName);
teamServer.EnsureAuthenticated();
IBuildServer buildServer;
try
{
buildServer = (IBuildServer)teamServer.GetService(typeof(IBuildServer));
}
catch(Exception ex)
{
// Error thrown:
// System.NotSupportedException
// "TF214015: The build client object model does not support Team Foundation Server 2005."
}
Я нашел следующий пост об использовании API 2005: http://notsosmartbuilder.blogspot.com/2006/12/get-build-changes-changesetdata.html
Однако объект BuildStore больше не является частью клиентской объектной модели 2008 года. Можно ли каким-либо образом получить доступ к клиентским библиотекам 2005 года? Я могу получить VS2005 с Team Explorer, установленным на моей машине разработчика, есть ли более простой способ? Могу ли я также ссылаться на некоторые DLL (которые ??) из установки 2005 года из проекта VS2008, или было бы менее болезненно просто разработать эту вещь в VS2005?
Какие-нибудь другие альтернативные подходы, которые я мог бы попробовать? (BuildLoggers для сбора информации во время сборки и ее сохранения самостоятельно; способ анализа файлов .trx (я уже упоминал, что у нас есть несколько файлов trx за запуск юнит-теста?); Использование отчетов TFS (хотя наша служба отчетов не работает наша установка TFS) и т.д?)