Hand conversion could have been done easily by comparing two blank solution/project files, but it sounds like the machines are geographically separated so I'll assume that it's too difficult to do so. Here's what I do to hand-convert back and forth, and it generally works.
.sln file:
Open it up in a text editor. You'll need to change the first two lines. Change the line that says "Format Version 10.00" at the end to say "Format Version 9.00" at the end. The second line is a comment that says "Visual Studio 2008"; I always change it to "Visual Studio 2005" for good measure but it might not be needed.
Project File
This one's a little more difficult, but the XML makes it easier to describe what needs to be changed.
- The Project element has a ToolsVersion attribute. Delete it.
- The ProductVersion node might need its value changed from 9.something to 8.something; I've never tested if it matters and you'll have to consult a new project file to figure out what the correct value for VS 2005 is, or you can do like me and put 8.0.0.0 and pray it works.
- Any TargetFrameworkVersion elements need to be removed.
- The line <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> should say "MSBuildBinPath", not "MSBuildToolsPath".
After that's all done, make sure you have no references or Imports statements that reference 3.0 or 3.5 assemblies; if you don't the compiler will be glad to let you know that it has no idea what you mean by System.Linq and the like.