October 2007 Archives

So, to stop my Beta 2 VPC image from expiring this week, I thought I'd try out an "upgrade" of one of the VSTS + TFS Beta 2 VPC images to a full copy of Windows Server Enterprise Edition with a retail key (as provided by my MSDN account, that Microsoft kindly supply me as a perk of being a Team System MVP).  Here are a few observations in case you try to do the same:-

  1. I needed to use a recent copy of the Windows Server 2003 R2 Enterprise Edition media (32-bit).  The ISO image I had from my March 2007 MSDN DVD did not work, so I ended up having to use one from September 2007 (number 2939.4 if you are looking).  Jeff mentioned that he used the June version which was 2939.3)
  2. The setup didn't want to run at first.  In the end, I let it perform a bunch of Windows Updates that it had in it's queue, restarted and tried again. This time it worked fine.
  3. When completing the upgrade, everything seems to be working fine, apart from the Documents and Reporting nodes are showing with the dreaded "little red crosses".  A quick peek in the event log showed that I needed to re-grant the Network Service user rights to the "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files" directory.  A quick right-click and add on the security tab of the Temporary ASP.NET File directory and everything seemed to be ok.

Other than those little hiccups - seemed to work ok.  Certainly quicker than rebuilding the image from ISO's but still took quite a while (couple of hours including time to install those windows updates).  I'll report back here if I find any other issues.

Jeff Beehler has posted an update on the Beta 2 expiration issue.  He currently see's three possible alternatives:

  • Do nothing: if you don't need to use your VPC for more than an hour or so at at time (for instance for demos), then you can probably tolerate the behavior of the timed out OS.
  • Upgrade OS to fully licensed version: if you have access to a fully licensed version of Windows Server, follow the steps above and upgrade the expired OS. 
  • Use new VPC images: if you can't upgrade the VPC OS and want to continue to use VS2008 / TFS2008 Beta2 on a regular basis, you'll probably want to use the new VPC images which we'll publish early the week of October 29.  If you have data in TFS, you'll need to follow the instructions on moving TFS servers.

Obviously there is a forth, and that is to set keep the date of your host OS machine to before November 1st before firing up this virtual machine - however this can have some issues - I'm not completely sure what the behavior of TFS would be if changesets and work item revisions started appearing before earlier ones on the system - however the fact that Jeff doesn't mention messing with date/times indicates that there might be some issues there.

The option I'm going to try is upgrading to a license key from my MSDN subscription - I'll report back how I get on.

Anyway - keep an eye on Jeff's blog for more details.

TechEd Developers RegistrationI'm joining my good friend Brian Randell to do a session on Team Build 2008 at TechEd Developers in Barcelona on November 8th.  If you are at TechEd then please do come along - it is shaping up to be a fun talk.  If you can't make it to the talk, then I'll be loitering around the Team System Ask The Experts area during other times.  Feel free to drop me a line if you want to meet up.

TLA316 Code It and Ship It with Team Build 2008
Brian Randell , Martin Woodward

This session covers how to define an end-to-end build process using Team System and Team Build 2008. First you'll learn what's new and changed from Team Build 2005. You'll learn how to manage the build, do desktop builds, and how you can setup Team Build to work in a continuous integration environment. You'll then learn how to customize the build process to perform all your build steps including running unit tests, creating custom build actions, generating setup programs and deploying to staging servers. Finally, you'll get a crash course in the new managed API for working with Team Build 2008.

Thu Nov 8 09:00 - 10:15 Room 115

If you are customizing a team build, then there are only two things you need to know to get you started.  The rest you can (mostly) figure out from there.

  1. Your build is defined in a file called TFSBuild.proj for your particular Team Build Type.  You probably figured that bit out already.  The first thing you need to know is that the TFSBuild.proj file inherits most of its logic from a file called Microsoft.TeamFoundation.Build.targets which lives in
    If you open this file in Notepad you can see that it is exceptionally well commented.  There is no smoke and mirrors with Team Build, if it happens at all then it triggered by this file. Note that you should never edit the Microsoft.TeamFoundation.Build.targets file.  In Team Build 2008 there are so many hook points provided for you to insert your own logic into the build that you should never need to.  Microsoft goes to some rather extreme lengths to ensure backwards compatibility with this file (i.e. a TFSBuild.proj file written with the TFS2005 targets file in mind will work just great with the 2008 targets file).  If you modify the targets file, not only are you setting your self up for deployment nightmares but you servicing nightmares as well if you attempt to upgrade to later version or even possibly service packs - don't say I didn't tell you ;-)
  2. If you get a bit lost in reading the targets file - the MSDN help for build customizations is pretty good.  The best starting point is the page "Understanding Team Foundation Build Configuration Files" - however the pages that this links to that I refer to constantly are Customizable Team Foundation Build Targets and Customizable Team Foundation Build Properties.  That said - most of the comments in those MSDN help pages are actually in the targets file itself - just sometimes the property or task you are after is easier to find in the MSDN help.

If you are/were planning on using that Beta 2 VPC of Team System or TFS that you downloaded after November 1st, then think again.  Jeff Beehler has posted to warn folks that the group have recently discovered that the VPC will expire early due to the timeout in the operating system.  See Jeff's post for more details.

Yesterday, Version 2.0 of the Virtual Machine Additions for Linux were released on the Microsoft Download Center.  Officially, this provides addition support for Virtual Server 2005 SP1, however I have read reports from the beta program suggesting they may also work under Virtual PC (albeit unsupported).  The additions are for RedHat and SuSE based Linux distributions.  I tried converting the supplied RPM files into .DEB files for installation in Ubuntu, but the scripts would then get installed specifically test for being installed on a Debian distribution and fail early.  If I was feeling adventurous I'd remove these checks and see what happened - but my Linux knowledge is a little sketchy so I'll stick with VMWare for now for heavy duty Ubuntu use until I read about someone clever getting them up and running.

The new "Gutsy Gibbon" version of Ubuntu was officially released this week.  While some of the developers at Teamprise use Ubuntu as their primary OS, I personally prefer Windows Vista, however I keep an Ubuntu image around so that I can quickly test any new UI code I write in an alternate OS.  Getting Ubuntu to install in VMWare is pretty trivial - the standard installation seems to work just fine.  However getting it to work in Microsoft Virtual PC is a little more complicated - the various tricks are located in various forum and bug posts around the web that I can never find when I need them so I am collating them here for my own use later - hopefully you may also find them useful.  Please bear in mind that I know enough about Linux to be dangerous rather than useful, so this may not be the "best" way - however it is my way ;-)

ARCast.TV TFS Down Under Ron Jacobs has posted up an ARCast video from TechEd 2007 in Australia.  About 3 minutes in he does a nice interview with an organization using Team Foundation Server in a cross-platform environment.  While I spend a lot of time talking about the performance of TFS over the WAN and extending the benefits of Team Foundation Server outside of Visual Studio by using the Teamprise Clients as well as the Microsoft MSSCCI provider(pronounced "Miss-key") - it is always nice to hear it from real people in a real company....

Anyway - if you have a spare 15 minutes, go take a look.

"Hit By a Bus" Use Cases

One of the great things about version control is that it covers a number of "Hit by a Bus" scenarios.  I say this with an air of joviality, but each actual use case is never a nice one.  I once worked with a guy, who supposedly once worked at a place where the "Hit By a Bus" scenario was a real one.  Mostly you need them when a member of the team has had to leave at short notice because they quit/ were sacked / had a family emergency etc. Anyway, there are a number of times when you thank your chosen deity for the fact that you implemented a decent source control system giving you one less thing to worry about, especially when times are tough.  Today, I ran across a question on the MSDN forums where someone was having one of these days and as usual, it is time to dust off the tf command line, or fire up the excellent TFS Sidekicks from Attrice - in this example it was to query history with a filter on the user that you want the history for.

ASP.NET MVC Framework

| 1 Comment

Some interesting news seems to be coming out of the Alt.NET Conference in Austin.  I'd got a few IM's from folks at the conference talking about Scott Guthrie's talk. According to Jeff Palermo's blog, Scott Guthrie showed off a new ASP.NET MVC Framework.  This looks very interesting and might well tempt me back into ASP.NET development.  I really like parts of ASP.NET but that whole postback / viewstate thing just confused me.  I was used to doing web applications the hard way and having this abstracted away from me into a semi-winform like representation of a web page just got in my way when building sites.  It also made them pretty hard to unit test.

Having used (and even written) a few MVC frameworks in the past, I'm really interested to see what it is all about.  Looking forward for some more information soon.  Jeff's post has a few tantilising details which make me thing this is exactly what I want from ASP.NET.

Do you come here often?


An odd smirk followed by "You come here a lot" is not what you want to hear when at the customs desk waiting to come into the US.  Immediately I expected the worst - an armed SWAT team absailing from the ceiling to lead me off into a quiet room for interrogation while the snapping sounds of latex gloves ricochet out of the distant bowels of the customs hall.

When travelling for work, you get asked some interesting and always flummoxing questions on your way in to a country - one particular favorite appears to be "When did you last come to the United States", the other more boring question is "what is the purpose of your visit to the United States, Business? - what kind of business?".  After 8 hours sat on a plane cursing myself for choosing chicken over beef again - the questions at customs always seem to throw me.  So much so that as I stand in line for hours waiting to have questions fired at me by the seriously grumpy immigration official, I prepare answers to all the questions I have had before so that I don't freeze during my passport stamping/fingerprinting session.

However, this particular incident did not start well.  The person in front of me was obviously not familiar with customs procedures and had even more difficulty than me in coming up with plausible answers to strangely suprising questions.  Then I made matters worse because I waited to be called. Usually not waiting to be called is a shoutable offence. But in this particular case, unbeknown to me, I was expected to go forwards without being called.  In the end I got shouted at for my hesitation - not a good start.

Then came the swipe of the passport and some tapping at the computer followed by an evil smirk and the words "you come here a lot."  I was expecting a question - this was clearly a statement of fact.  The lack of a question mark left me in a spin - should I respond to a statement?  What was that visible (if fleeting) display of emotion all about? - I'd never seen such a brazen display of humanity at the customs booth before.  This was clearly an un-usual encounter and it clearly wasn't going to end well.

The official simply said "I did you the last 3 times".  He didn't bother asking any questions - he just stamped my passport, performed the fingerprinting/photo taking dance without another word (though when I knew to swap fingers and then look at the camera at the correct time it raised another smile).  He then sent me on my way.  As I look at my passport now I can see that of the 12 US entrance stamps in my couple-year-old passport, his writing is on 7 of them. 

However, the encounter left me stunned - this was almost a conversation (albeit a little one-sided).  As I left the customs hall I nearly thought of a clever response but by then the opportunity had been lost.

At least I have a new scenario to mull over for the next time I find myself waiting hours to get through customs.

admin_prompt A neat (if not well known) feature of Windows Vista is the built in ability to do a "Command Prompt Here" by selecting a folder, keeping the shift key down and right clicking on the folder.  While this is neat, I've sometimes found myself needing an Command Prompt with full administrative privileges.

I stumbled upon an excellent tip from Randy Rants on how to get an elevated command prompt here

Personally, I like my admin command prompts to have a dark red background color so that I remember it is running with elevated privileges (see my previous post if you want a admin command prompt icon using this meme).  Anyway, my registry entires look something like:-

Windows Registry Editor Version 5.00

@="Admin Comm&and Prompt here"

@="cmd.exe /t:4f /k \"pushd %L && title Command Prompt\""

Have fun - usual warnings about registry hacking and backing up etc. According to Randy this should also work for XP users who run with non-Admin privileges.


Creative Commons License
This blog is licensed under a Creative Commons License.