вам понадобится Visual Studio 2005 SDK, чтобы получить необходимые сборки. SDK также включает несколько примеров в C#, которые вы можете использовать в качестве ссылки, и некоторую документацию. Ничто не очень хорошо (IMHO), поэтому вам, вероятно, придется заниматься поиском.
Я написал следующий код как доказательство концепции, но это может помочь вам приступить к работе. Обратите внимание, что это написано в VS2010, поэтому вам, возможно, придется использовать операторы #I для ссылки на правильные сборки.
#light
// #I @"C:\Program Files (x86)\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\Assemblies\"
#r "Microsoft.TeamFoundation"
#r "Microsoft.TeamFoundation.Client"
#r "Microsoft.TeamFoundation.WorkItemTracking.Client"
#r "Microsoft.TeamFoundation.VersionControl.Client"
open System
open System.Collections.Generic
open System.Net
open Microsoft.TeamFoundation
open Microsoft.TeamFoundation.Client
open Microsoft.TeamFoundation.WorkItemTracking.Client
open Microsoft.TeamFoundation.VersionControl.Client
type TeamFoundationClient(uri, credentials : ICredentials) =
let server = new TfsTeamProjectCollection (Uri uri, credentials)
let workitemStore = server.GetService(typeof<WorkItemStore>) :?> WorkItemStore
let versionControlServer = server.GetService(typeof<VersionControlServer>) :?> VersionControlServer
member this.ExecuteQuery wiql =
workitemStore.Query(wiql)
|> Seq.cast<WorkItem>
member this.GetWorkItem id =
workitemStore.GetWorkItem (id : int)
member this.GetChangeset changesetUri =
versionControlServer.ArtifactProvider.GetChangeset (Uri changesetUri)
member this.GetChangesets (wi : WorkItem) =
let isChangeset (link : Link) =
match link with
| :? ExternalLink as link' when link'.LinkedArtifactUri.Contains("Changeset") -> Some (link')
| _ -> None
wi.Links
|> Seq.cast<Link>
|> Seq.choose isChangeset
|> Seq.map (fun l -> l.LinkedArtifactUri)
static member CreateCredentials (username : string) (password : string) (domain : string) =
(NetworkCredential (username, password, domain)) :> ICredentials
// Huusom
Спасибо, что это отличный старт. :) Я тоже использую VS2010, так что это еще упростит! Я попробую и посмотрю, как это происходит. – Russell
На самом деле вам не нужен Visual Studio 2005 SDK. Необходимые сборки устанавливаются при установке клиента Team Explorer (или автоматически вместе с VS2010 Ultimate). – Robaticus