How to develop seamlessly in both VC++ 2010 and VC++ 2008 on the same work?

I believe the is a command line option to migrate a VS2008 project file to VS2010. So an option would be to only maintain the VS2008, and regenerate the VS2010 projects. The downsides are

  • Not being able to enter VS2010 specific project options
  • Any changes to the VS2010 project will be overwritten and not merged back to VS20008.

Source control helps here. I have done this before with previous versions by making an upgraded (VS2010) branch and merging changes back and forth between it and the trunk (VS2008). While certainly not seamless, it works.

I don't know if the project changes in VS2010 would make it any better or worse than before!


The Gallio OSS project is built using VS2010 while most of the contributors still use VS2008. To keep the *.csproj files synchronized with the *.vs2010.csproj files, we use a simple PowerShell script that runs WinMerge against every pair of project files. Nothing complicated, but very handy.

You can download the script at Google Code. To run it, just type the following command:

@echo off
powershell "& './Compare VS2010 Projects.ps1' -sync %*"

I hope it helps.


At my company we had exactly the same problem and chose to use CMake.

At least try it on one of your projects, it is the ideal solution for your problem.

It allows to describe our projects with a simple syntax in text files and then CMake generates VS2005, VS2008 and VS2010 projects from the same files.
This way only the Cmake files are modified and all the projects are updated at the same time.

In short CMake is:
1. clean
2. descriptive
3. native
4. safe

Because:
1. All the options and configurations can be read in the files, not in many properties panels.
2. The CMake grammar and syntax is easy to read.
3. All the generated projects are complete and independant from CMake.
4. You can use a Source Control Manager on the CMake files.

We had some solutions of 50 projects or 20 projects and it was a lot of work, and one of the reason we used CMake was because we needed to work with Xcode on Mac on some libraries which projects are now common for VS and Xcode.
But it would have been worth it even for the different versions of VS only.