How to add the Team Foundation assemblies to the .NET tab in the VS Add Reference dialog

For anyone working with the VSTS Extensibility Kit (part of the Visual Studio 2005 SDK), Buck Hodges has posted a very helpful batch file on his blog that automatically adds the Microsoft.TeamFoundation assemblies to the .NET tab in Visual Studio 2005. Here’s an extract from his post;

To write an app using the Team Foundation API, you’re going to need to reference assemblies that are in the GAC.  It’s not possible to add a reference to a .NET assembly in the GAC in VS when you need to add a reference to an assembly.

The GAC’ed Team Foundation assemblies are also copied to the PrivateAssemblies folder under the VS directory.  When you want to add a reference to a TFS assembly in VS solution, you can choose Browse and find the assembly.

To make it more convenient, you can also add the TFS assemblies to the .NET tab in the Add Reference dialog.

Download the batch file from his post here.

If you haven’t started exploring the extensibility options in VSTS then the Visual Studio Extensibility Developer Center is a great place to start.

TFS January RC?

I just noticed the following update from Brian Harry on the MSDN Forums which I thought I would share in case people missed it. He makes no guarantees for a January RC but its nice to know what they’re working on.</p>

We are still finalizing what the date of the RC will be.  We have had a goal to get it out in Jan but that is not a guarantee.  There are a few things we are basing our date on:

  • We are finishing up another big chunk of work to improve the setup experience.  Specifically to address issues surrounding getting TFS and Sharepoint configured to work together properly.
  • We are finalizing the tools and instructions to allow everyone to upgrade from Beta3/Beta3 Refresh to the Release Candidate.
  • We are making sure that everything is in place to be able to service/patch the product after it ships.
  • We are fixing bugs and want to be near 0 before the RC ships.
  • </ul>

    When all of this is ready we’ll ship the RC.  We started doing detailed analysis on how long this would take just before the holidays and will be completing it this week.  We’ll update the blogs with the info as soon as we have it.

    Brian

    </blockquote>

    </span>

Warning – look out for the Y2K7 bug!

I was looking into some customisations for the Team Build server today and I happened across a very interesting post in the MSDN Forums that introduces us to the latest potentially civiliation-ending software bug! Yes the dreaded Y2K7 bug. Just before I head out to start stockpiling tinned food and water for my bunker (location not disclosed),  let me share this with you.

On our Team Build server, I want to configure the build to use assign assembly version numbers differently for release and debug builds. My quick search took me to the MSBuild blog which proved to be a great starting point. The post I was after was conveniently named How To: Update Assembly Version Numbers with MSBuild and it cover exactly what I wanted to do. Off I headed to GotDotNet to download the AssemblyInfoTask and it was at this time I decided I liked the Visual Studio convention of major.minor.YYMMDD.build. This seemed to be quite helpful and I always felt the third number was never very useful anyway

It was then that I read the comments on the blog post and read with interest the comment from Steinar Herland. It seems that we (developers) have gone and created another Y2K-like bug. The Visual Studio versioning scheme has a rather nasty problem that will manifest itself at the stroke of midnight on December 31st this year. As Steinar points out…

Major, Minor, Revision are all System.UInt16 types. (IE they are limited to a maximum of 65534)

December 31, 2006 = 61231 (No problems)

January 1, 2007 = 70101 (Oh dear!)

So in light of this, I expect major delays in the release of all software next year as our entire versioning system grinds to a halt and applications fail to build all over the planet.  Here in Australia we will be one of the first civilations to feel to full force of Y2K7 due to our GMT+10 location. Please spread the word now and save us all. LOL

 

RSS Notification of Builds with TFS [Update for Beta 3 Refresh]

In my previous post on RSS Notification of Builds with TFS, I discussed using a nice little ASPX file from Abhinaba Basu from the TFS team. If you installed this and attempted to test it, you would find the RSS feeds are available but the hyperlinks contained therein would not work if you were using TFS Beta 3 Refresh.

After a little head scratching today, I have swapped emails with Abhinaba and determined that the RSS.ASPX file (source) he provides is designed for the December CTP release of Team Foundation Server. The cause of the problem stems from the following line

const string buildUriFormat = “{0}://{1}:{2}/Build/Build.aspx?TeamProject={3}&BuildNumber={4}”;

Here is Abhinaba’s helpful explanation;

The issue is that the external addressability link (web-view) for team build repost previously was http://Server:Port/Build/build.aspx?ArtifactMoniker=NNNNNN we got feed back that this is unintuitive and so we added another feature in which we support http://Server:Port/Build/build.aspx?TeamProject=ABC&BuildType=BBB Unfortunately  we added this support in the server after B3. My feed uses the second type of addressing and so you hit the issue. I have added another aspx file where I added B3 type of address. Please try this out and let me know if this works….

http://Server:Port/Build/v1.0/rssb3.aspx?TeamProject=MyProject __

The only change in the feed is marked in bold

Abhinaba has kindly created a new version of the rss.aspx file for Beta 3 Refresh so the fix is really quite easy. Download the new version of the file RSSB3.ASPX and update your RSS reader to point to http://Server:Port/Build/v1.0/rssb3.aspx?TeamProject=MyProject. You should keep the existing RSS.ASPX so you’ll be really when you update to the release version of TFS.

For your convenience you can download copies of Abhinaba’s RSS.ASPX and RSSB3.ASPX files here.

rss.zip rssb3.zip

 

Configuring Continuous Integration with TFS

My next task with TFS was to get Continuous Integration (CI) up and running. This capability to not built into the Team Foundation Server Beta 3 Refresh release. Fortunately Khushboo Sharan, PM on the TFS team made a very timely post on how to do this about a week ago.

Her post includes a link where you can download ci.msi which is the installer for her CI webservice. Once you download this installer you simply run it and follow the instructions Khushboo provides in her blog post. It is a very straight forward process and she includes the code so you can see how this work and make changes as you see fit.

A couple of tips concerning her post;

  • Remember to change update the “CI” to your own build type in step 7. (On my first brush through I missed this and of course it wouldn’t work)
    • Remember the syntax in step 8 is case sensitive
      • If you have any problems getting the CI solution to work, look for CILogger.txt in the WindowsTemp folder.</UL> Once you have this up and running, you should consider the RSS solution from my last post. These two features (CI & RSS) work well together to trigger a build on check-in and notify you and your team of this via an RSS reader such as RSS Bandit.

      [Edit] Sincere apologises to Khushboo for referring to her as a him [:)]</p>

RSS Notification of Builds with TFS

One of my goals this week has been to round out my TFS installation with a couple of extras that the product team guys have released on their blogs recently. The first was RSS Notification of Builds and the next one I will blog about will be Continuous Integration.

RSS Notification of Builds

**</FONT>** Make sure you read [this post](http://myvstsblog.com/archive/2006/01/09/90.aspx) if you want to use the RSS Feed with Beta 3 Refresh **</UPDATE>**

One of the first things I wanted to do was provide a way of having team members notified when builds occur. What I am hoping for is to achieve something similar to the CCTray application many of you may use with CruiseControl .NET.

Abhinaba Basu from the Team Foundation team blogged about an RSS solution in December that I thought might be a suitable choice. His solution involves placing a file (rss.aspx) on the TFS Server in the %Program Files%Microsoft Team Foundation 2005Web ServicesBuildv1.0 folder. You then point your favorite RSS Reader (such as RSS Bandit) at the file and specify your Team Project name. (Eg. http://MyTFSServer:8080/Build/v1.0/rss.aspx?TeamProject=MyTeamProjectName</A>)</P>

I set RSS Bandit up to check for updates every 30 minutes but of course you can change this value to something that suits you better if required. I also specified that RSS Bandit should notify me when an update is available for this particular feed. (IE. Popup and tell me)

The solution didn’t work the first time but after adding a comment to his blog, Abhinaba emailed me and we worked out that a standard installation of TFS Beta 3 Refresh does not place the file  “Microsoft.TeamFoundation.Build.Common.dll” in a location he was expecting it to. The fix is very easy. 

To implement the fix, I found it easiest to simply copy the file “Microsoft.TeamFoundation.Build.Common.dll”
from C:Program FilesMicrosoft Visual Studio 2005 Team Foundation ServerWeb ServicesServicesbinPlugins (where the file happens to be as well)
to C:Program FilesMicrosoft Visual Studio 2005 Team Foundation ServerWeb ServicesBuildbin

Once this was done I used Team Explorer to fire off a build and sure enough a little while later RSS Bandit popped up telling me a build had occurred and providing me with convenient hyperlinks to go and view the build log.

Here is a screenshot of RSS Bandit showing the build information. Obviously I have been playing around with it so there are lots of builds happening today

RSSBandit

In summary, I found the RSS solution to be very handy and as it all occurs inside a small aspx file, you can modify the solution as you see fit.

[UPDATE] Make sure you read this post if you want to use the RSS Feed with Beta 3 Refresh</p>

Problems with email from my blog

I have just found out that there has been a problem with the configuration of my blog (myvstsblog.com) and I have not been receiving any emails from the “Contact” link on the site. I have fixed the problem now and have received a huge backlog of emails from people. Please accept my apologises for not having replied to any questions you have sent – I was not ignoring you .

VS6 TFS MSSCCI Provider is now available

Back in early December Brian Harry announced that the VS6 MSSCCI Provider for TFS would be available shortly. Well the good news for those of you using and supporting VB6, is that day has come…

Check out his announcement today about the release and download it from the MS site here VS6 MSSCCI Provider

A few notes Brian makes;

  • Unfortunately it does not yet support VS2003 or VS2002.  We are working to add support for those now and expect to have them available when the Team Foundation Release Candidate ships.
    • The plugin available now only works with TFS Beta3 and Beta3 refresh.  Don’t bother trying to use it with Beta2 or the Dec CTP.
      • This plugin is Beta only and is not included in the TFS “Go-live” program.  If you use it, your only avenue to support is through the TFS newsgroups – and we will be available there to help you out if you have problems.
        • The functionality of the plugin is not 100% finished.  Most of it is there but some TFS functionality (like checkin policies) is not yet exposed.</UL></p>

Creating a simple Work Item Query

Recently I have had reason to find a number of closed work items and change their status from Closed back to Active for a number of our developers. This is a very straight forward task but it could be made even easier if I could easily find recently closed work items. This posts details the situation I am experiencing and walks you through creating a very simple custom work item query to make things easier when it happens again. 

Scenario

A developer has partially completed the work assigned to him/her in a Work Item and while the code will build, the work defined in the work item is not yet complete. The developer dutifully selects a work item (as required by the check-in policy I have created) and then checks the code into TFS.

Problem

The problem/issue occurs when the developer selects the work item and does NOT change the default Check-in Action from Resolve to Associate after selecting the work item. This effectively closes the work item so when they go back to finish the work, the appropriate work item does not appear for them to select prior to check-in.

What is required is a quick and easy way to see recently closed work items, so you can change the State field from Closed back to Active.

Solution

The solution for this is very simple. Create a custom work item query that displays only those work items that have been closed in the past week. The following steps will take you through the process. While this custom query is a very simple example, take a few moments to see what other options are available in the query designer.

Creating a custom Work Item Query: “Work Items Closed (last 7 days)”

  1. Start Visual Studio 2005 and make sure you can see the Team Explorer
  2. Right-click on My Queries under Work Items in your team project and select Add Query from the context menu as shown in the following screenshot NewWIQuery1</li>

    • Set the following parameters for your query
      And/Or = “And
      Field = “Closed Date”
      Operator = “>”
      ** Value = **“@Today – 7”
      newwiquery2
      </LI>

      • Right click in the area below the query parameters grid and select Run Query from the context menu. If any Work Items have been closed in the current team project in the past week, these will be displayed.
      • Click the Save button on the toolbar to save your query. You should provide a meaningful name such as Closed Work Items (Past 7 days) and then choose if you want to save this query for everyone in the team to see or just you. </p> newwiquery3
        </LI>

        • After saving your query, you will now see it appear in the Team Explorer window ready to be called upon when necessary.</OL>

Team System Outlook Add-in

Rob Caron has been busy over the festive season and has blogged about a new third party product called TeamLook which allows you to use Microsoft Outlook to interact with Visual Studio 2005 Team System.

An overview of this product from their website;

Teamlook is a convenient software project dashboard that enables all stakeholders in a software development project to communicate and collaborate on Visual Studio 2005 Team System projects from within Microsoft Outlook. Teamlook offers stakeholders a familiar user interface, tightly integrated with Microsoft Outlook, for managing Work Items, viewing Reports, and contributing to the overall project. With Teamlook, stakeholders can interact with Visual Studio 2005 Team Foundation Server and:

 Connect to Team Projects through a user interface tightly integrated with Microsoft Outlook

 Create and modify new Work Items

 View reports and project status

The Beta version of this product is now available for download from the PersonifyDesign website. (1.5Mb)

I’ve just downloaded the application and should be able to report more on it shortly.