I decided to create a utility that converts projects from the new Visual Studio .NET 2003 (codename "Everett") to Visual Studio .NET 2002. This is because in my experience I was working with both and found it hard to manually convert the projects and it often introduced problems, so I made an automated tool to do this job for me. So, all who are having the same difficulty, this tool is for you.
I've included full source code so you can see how I've done it and also so you can customize the tool to fit your own needs. As of March 12, 2004, I have updated the original VSConvert with some minor changes. Version 2.0 detects read-only files and also warns the user about losing .NET references when converting Managed C++ projects.
How I did it
So, you may ask, "How did you know how to convert the project files?" Here is a step-by-step description of the changes that happen when you convert a project from VS 7.1 to VS 7.0.
- In SLN files, the 8.0 must be replaced with 7.0.
- In vcproj files (and only vcproj), the 7.10 part must be replaced by 7.0. Note: The <References> portion of MC++ projects will be incompatible with VS.NET 2002 since it uses #using statements from 'stdafx.h'.
- In VB.NET or C# project files, 7.10.3077 is replaced with 7.0.9466.
- Also in VB.NET and C# projects, the schema version 2.0 should be replaced with 1.0.
- In RESX files, the types declared are 1.0.5000 and must be replaced with 1.0.3300.
- Again, in RESX files (binary streams), the base-64 encoded part that describes the version of the stream must also change from LjAuNTAw to LjAuMzMw (basically base-64-encoded versions of 1.0.5000 and 1.0.3300 respectively)
To convert from VS.NET 2002 to VS.NET 2003, just apply this process backwards.