Monday, August 2, 2010

Version issues between TFS 2008 and TFS 2010 Libraries

Finally been able to work on YakShaver a bit more trying to finally finish up what I'm calling the SFD feature.  As I've been working on it off and on for the past few years there sometimes can be days (read weeks/months) between getting dedicated time.

Recently I made a change to go from the TFS 2010 libraries back to the 2008.  Not because something was wrong with them, just that one of the installation locations I had would not allow me to install TFS 2010 (anything related).  So, I rolled back my project to the 2008 and apparently just left it as is (never compiled or compiled and didn't pay attention to errors).

Fast forward to last Friday.  I've finally got time, open up the solution, notice I have some errors.  "Not a big deal" I think to myself, how much could be wrong?  I knew it already worked before.  But I could not get this to compile.  The errors were all pretty close to the same.

Microsoft.TeamFoundation.Build.Client.IProjectFile' is obsolete: 'This interface has been deprecated. Please remove all references.

Not just this interface, IBuildStore was another.  But this was only a warning, so I ensured I had TreatWarningsAsErrors turned off, still couldn't get it to compile.  WTF, was all I could think.

As I started diagnosing, I looked at another library I had referenced (not a project file reference, but just a DLL I had written previously.)  This DLL referenced the 2010 libraries and upon compilation would cause the error.

I didn't see how this could actually cause an issue, but wanted to verify.  I found the project file for the DLL in question, included it in my solution, and sure enough same error.  I modified the project to utilize the 2008 libraries ( instead.  Compiled.  Poof. 

It was logged as a bug with TFS in connect.  But doesn't look like it is.  Here is the original link to see more details.

Hope this helps, I struggled for a couple hours on it and the error message doesn't lead you down this path.