Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>You'll need the Visual Studio 2005 SDK to get the needed assemblies. The SDK also includes a few examples in C# you can use as reference, and some dokumentation. Neither is very good (IMHO) so you'll probably have to do some googling.</p> <p>I wrote the following code as proof of concept, but it might help you to get started. Note this is written in VS2010 so you might have to use #I statements to reference the right assemblies.</p> <pre><code>#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&lt;WorkItemStore&gt;) :?&gt; WorkItemStore let versionControlServer = server.GetService(typeof&lt;VersionControlServer&gt;) :?&gt; VersionControlServer member this.ExecuteQuery wiql = workitemStore.Query(wiql) |&gt; Seq.cast&lt;WorkItem&gt; 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") -&gt; Some (link') | _ -&gt; None wi.Links |&gt; Seq.cast&lt;Link&gt; |&gt; Seq.choose isChangeset |&gt; Seq.map (fun l -&gt; l.LinkedArtifactUri) static member CreateCredentials (username : string) (password : string) (domain : string) = (NetworkCredential (username, password, domain)) :&gt; ICredentials </code></pre> <p>//Huusom</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload