31

I'm working with some older code, and I think the person who last built it was using Visual Studio 6. There's no .vcproj file, but the .dsp and .dsw files have the following headers: (.dsp)

# Microsoft Developer Studio Project File - Name="[redacted]" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00

(.dsw)

Microsoft Developer Studio Workspace File, Format Version 6.00

Does the "Format Version 6.00" correspond to Visual Studio 6?

Ben Hocking
  • 7,790
  • 5
  • 37
  • 52

4 Answers4

39

The the solution/VS version matrix is:

  • VS 6.0 -> 6.0
  • VS 2002 -> 7.0
  • VS 2003 -> 8.0
  • VS 2005 -> 9.0
  • VS 2008 -> 10.0
  • VS 2010 -> 11.0
  • VS 2012 -> 12.0
  • VS 2013 -> 10.0 to 12.0
  • VS 2015 -> 10.0 to 14.0
  • VS 2017 -> 10.0 to 15.0
  • VS 2019 -> 10.0 to 16.0

Compatibility between solutions does not guarantee compatibility between projects. Check the Visual Studio 2013 Compatibility document for more detail.

Drew Noakes
  • 300,895
  • 165
  • 679
  • 742
  • I'm using the latest (preview) of VS 2017 and when I open a solution that has a format version of 15, I get an error saying it's not supported. – rory.ap Sep 19 '18 at 14:34
  • For clarity, it is worth mentioning that these versions numbers are the *file format* version numbers. The different Visual Studio versions also have distinct *internal* version numbers that are usually not the same as the file format version numbers. For example, the following table uses the *internal* version numbers (but the text that follows gives the *file format* numbers like those in the answer). https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#History – Eric Dec 17 '20 at 13:55
14

I opened a VisStudio 6.0 dsw file i have, and it reads Format Version 6.00.

I opened a VisStudio 2008 sln file i have, and it reads Format Version 10.00.

So i assume so?

It corresponds. if 6.0 is version 6.0, then Visual Studio .NET (2002) is 7.0, Visual Studio .NET 2003 is 8.0, Visual Studio 2005 is 9.0, and Visual Studio 2008 is 10.00

Caladain
  • 4,801
  • 22
  • 24
  • That does seem logical. However, I have a .vcproj file (for another project with old code in it) that has a version identifier of 7.10, which corresponds to Visual Studio .NET 2003. That said, Wikipedia seems to be aware of this discrepancy (http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Version_history): the format version is 8.0 whereas the version itself is 7.1. I wish I could find an official site that said this was definitely true. Thanks for providing a known example. That helps. – Ben Hocking Jun 24 '10 at 20:17
5

When I opened the solution file of a project using a notepad, the version of visual studio was written on the top, with the Format version number, like this -


Microsoft Visual Studio Solution File, Format Version 10.00
#Visual Studio 2008
Shanid
  • 557
  • 12
  • 30
-1

Check the binary signatures in the compiled files.
By this you can get compiler version.
By compiler version you can get Visual Studio version.

By compiler I mean not only cl.exe, but resource compiler, linker, etc. Do you have some compiled materials?

outmind
  • 759
  • 1
  • 10
  • 30
  • Alas, for this project I don't have the compiled materials, although there's a chance I could get them. – Ben Hocking Jun 24 '10 at 20:19
  • AFAIK .dsw .dsp could be opened by VS later then VS6.
    So if they used them only to read/build it could be later version of VS.
    – outmind Jun 24 '10 at 20:27
  • @outmind - If you open an older VS project in a newer edition of VS, it "upconverts" the project. Not sure if it does it for every version (2003 upconverts 2002, etc), but at least from 6.0 to 2003 and 6.0 to 2008 and 2003 to 2008. – Caladain Jun 24 '10 at 21:19
  • I remember that it propose you to convert, but can it work on older projects without conversion? – outmind Jun 25 '10 at 11:34
  • I haven't tried it, but I imagine you can compile an older project from the command line using devenv.exe without altering the project files. That said, in most cases it would take deliberate effort to avoid converting to your newer version. – Ben Hocking Jun 25 '10 at 16:33