Sticky Posts
Feb 18, 2009
Revert C++ Projects And Solutions | VS2008 Back To VS2005
I gave VS2008 a try and was stupid enough to convert and not backup over 100 C++ projects from VS2005 to VS2008. All went well untill the dreaded message:
"Failed to create .NET framework propertygrid component."
WTF? I could no longer edit project properties thanks to this .NET error. I tried everything! I tried to repair and reinstall everything: .NET Framework + VS.
- I tried to repair .NET Framework installs
- I removed .NET framework completely and reinstalled it
- I tried a repair/clean install on VS2008
- ... and much more
And nothing. This error was here to stay, my patience was wearing thin and time was running out. So I removed VS2008 completely, called it names, but was left with the shittiest situation ever. Over 100 C++ projects upgraded to VS2008 in my short period of use. Imagine my frustration as VS2005 refused to open them... talking about forward compatibility :)
Started Googling and realized others hit this wall too and, after looking at the source of .sln and .vcproj files, I noticed a difference.
- Format Version 10.00 changes to Format Version 9.00 in .sln Solution files.

- Version="9.00" changes to Version="8.00" in .vcproj Project files.

Easy one. Did a test and the project converted just fine using notepad magic and on first save everything I didn't change was fixed by VS2005 itself. So I wrote a piece of software to help me and you throw VS2008 back to the trash-can of history where it belongs. If it ain't broke don't fix it... live and die by this rule! VS2005 and XP x64 rule.
What My Software Does?
This is how my not so handsome yet functional software looks like. It's C++ hardcore, blame me for the looks.

Top 3 buttons are 3 push-like radios that allow you to choose an action. Path is the directory that will be recursively searched for .vcproj and .sln files. And Proceed button starts the whole process.
Action can be:
- Downgrade will convert projects and solutions from VS2008 to VS2005 and create backups in the process
- Revert will restore backups of the downgraded VS2008 files back to original state where backup is still found
- Cleanup will remove .sln.5ubackup and .vcproj.5ubackup files it backed up during downgrade process
Conversion respects BOM of converted files: ASCII, UTF-8 and UTF-16. Use Cleanup after you can confirm your projects downgraded smoothly to wipe away all leftovers or use Revert to return files to older states and downgrade your own way if mine fails.
In the end
Keep in mind this is for VC++ programmers only. This works against Visual Studio Solutions and Visual C++ Projects only. I didn't test this on C# or Managed C++, and honestly I don't care about the two. I hate the concept of CLR, .NET and Managed Code.
Use at your own risk, backup first, software comes 'as is' with no guarantees.
I checked it for viruses and it appeared to be clean.
Worked well for me and hope will work well for you also.
Download the tool here. Saved the best for last to make sure you read all of this and understand what you're dealing with.


Looks like backing up is not part of you DNA :D
Good job thou. Now, if you would expand it to C# (at least) then this might be good linkbait. Just sayin …
C# projects are a bit more complex to convert.
I don’t have neither the time nor the need to go through something like this.
I’m not a linkbait kind of guy ;)
@errerr:
I remember when I was 10 my father yelling at me to back up our Apple games before I tried to crack them. I didn’t lose too many of his games… ;)
I wonder if not backing up is a geek thing in general?
Communibus
It’s evolution. You evolve and … just don’t look back ;)
PS: I do make weekly backups. But I work a lot during a week.
It’s funny because NOW I back up everything nightly to multiple sources. Mostly because I moved to scanning everything to digital formats and am scared to death of losing anything because the paper is GONE.
Just so happens to hit the ol’ development stuff in the process.