How To Get TFS Power Tool Check-in Policies for VS2005 to Work with VS2008 (Orcas)

VS2008 The current TFS Power Tools support TFC/VS 2005 only.  However, there are beta customers of VS2008 (aka Orcas) who want to use the check-in policies from the TFS Power Tools. 

With a few manual steps (below) you can get the TFS Power Tool Check-in policies to work with VS2008 and observe how .Net binding redirects work as a bonus.  I've only done some basic ad-hoc testing with this approach, so standard disclaimers apply.  This is provided "AS IS" with no warranties and confer no rights.  No need to consult a physician first, but please back up where stated to back up.

 

Place Check-in Policy Assemblies

If your client machine has TFS 2005 installed, you can install the Power Tool setup as normal (if you have not already).  If your machine only has TFC/VS2008, then you will need to find a machine that has VS 2005 installed, install the Power Tools, then copy the following binaries

Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments.dll

Microsoft.TeamFoundation.PowerTools.CheckinPolicies.CustomPathPolicy.dll

Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ForbiddenPatternsPolicy.dll

Microsoft.TeamFoundation.PowerTools.CheckinPolicies.WorkItemQueryPolicy.dll

For the rest of the steps, we'll use the same default location where the Power Tools  install as the location for these check-in policies, namely,

C:\Program Files\Microsoft Team Foundation Server 2005 Power Tools\Check-in Policy Pack

 

Modify Registry so VS2008 (Orcas) Can Find The Policies

Edit the text below and put it in a .reg file.  Be sure to replace the path to your installed path if is is not the same as shown below.   

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\TeamFoundation\SourceControl\Checkin Policies]
"Microsoft.TeamFoundation.PowerTools.CheckinPolicies.WorkItemQueryPolicy"="C:\\Program Files\\Microsoft Team Foundation Server 2005 Power Tools\\Check-in Policy Pack\\Microsoft.TeamFoundation.PowerTools.CheckinPolicies.WorkItemQueryPolicy.dll"
"Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments"="C:\\Program Files\\Microsoft Team Foundation Server 2005 Power Tools\\Check-in Policy Pack\\Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ChangesetComments.dll"
"Microsoft.TeamFoundation.PowerTools.CheckinPolicies.CustomPathPolicy"="C:\\Program Files\\Microsoft Team Foundation Server 2005 Power Tools\\Check-in Policy Pack\\Microsoft.TeamFoundation.PowerTools.CheckinPolicies.CustomPathPolicy.dll"
"Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ForbiddenPatternsPolicy"="C:\\Program Files\\Microsoft Team Foundation Server 2005 Power Tools\\Check-in Policy Pack\\Microsoft.TeamFoundation.PowerTools.CheckinPolicies.ForbiddenPatternsPolicy.dll"

Set Binding Redirects in DevEnv.Exe.Config

Since the TFS Power Tool Check-in policy assemblies reference the 8.0 assemblies, we need to configure devenv.exe to use the 9.0 assemblies whenever the 8.0 assemblies are referenced.  Here is how you do that.

1. Close all instances of devenv.exe

2. Find where VS2008 (Orcas) devenv.exe is installed.  Typically

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE

3. Backup the existing devenv.exe.config file

4. Edit devenv.exe.config by adding the following in the <runtime><assemblyBinding> section:

<dependentAssembly>
  <assemblyIdentity name="Microsoft.TeamFoundation.WorkItemTracking.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  <bindingRedirect oldVersion="8.0.0.0" newVersion="9.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
  <assemblyIdentity name="Microsoft.TeamFoundation.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  <bindingRedirect oldVersion="8.0.0.0" newVersion="9.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
  <assemblyIdentity name="Microsoft.TeamFoundation.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  <bindingRedirect oldVersion="8.0.0.0" newVersion="9.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
  <assemblyIdentity name="Microsoft.TeamFoundation.VersionControl.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  <bindingRedirect oldVersion="8.0.0.0" newVersion="9.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
  <assemblyIdentity name="Microsoft.TeamFoundation.VersionControl.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  <bindingRedirect oldVersion="8.0.0.0" newVersion="9.0.0.0"/>
</dependentAssembly>

5. Save devenv.exe.config

Restart Visual Studio 2008 (Orcas)

Restart Visual Studio 2008 (Orcas) and the Power Tool check-in policies will be available.