【问题标题】:How can I tell what version of Visual Studio was last used to work on a project?我如何知道上次用于项目的 Visual Studio 版本是什么?
【发布时间】:2011-03-08 00:10:44
【问题描述】:

我正在使用一些较旧的代码,我认为最后构建它的人使用的是 Visual Studio 6。没有 .vcproj 文件,但 .dsp 和 .dsw 文件具有以下标头: (.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

“格式版本 6.00”是否对应 Visual Studio 6?

【问题讨论】:

  • 6.0 是使用 .dsp/.dsw 的最后一个版本。

标签: visual-studio visual-c++


【解决方案1】:

解决方案/VS版本矩阵为:

  • 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 到 12.0
  • VS 2015 -> 10.0 到 14.0
  • VS 2017 -> 10.0 到 15.0
  • VS 2019 -> 10.0 到 16.0

解决方案之间的兼容性并不能保证项目之间的兼容性。查看Visual Studio 2013 Compatibility 文档了解更多详情。

【讨论】:

  • 我正在使用 VS 2017 的最新(预览版),当我打开格式版本为 15 的解决方案时,我收到一条错误消息,指出它不受支持。
  • 为清楚起见,值得一提的是,这些版本号是文件格式版本号。不同的 Visual Studio 版本也有不同的 internal 版本号,这些版本号通常与文件格式版本号不同。例如,下表使用 internal 版本号(但后面的文本给出了 file format 数字,如答案中的那些)。 en.wikipedia.org/wiki/Microsoft_Visual_Studio#History
【解决方案2】:

我打开了一个 VisStudio 6.0 dsw 文件,它显示格式版本 6.00。

我打开了一个 VisStudio 2008 sln 文件,它显示格式版本 10.00。

所以我假设是这样的?

对应。如果 6.0 是 6.0 版,那么 Visual Studio .NET (2002) 是 7.0,Visual Studio .NET 2003 是 8.0,Visual Studio 2005 是 9.0,Visual Studio 2008 是 10.00

【讨论】:

  • 这似乎合乎逻辑。但是,我有一个 .vcproj 文件(用于另一个包含旧代码的项目),其版本标识符为 7.10,对应于 Visual Studio .NET 2003。也就是说,维基百科似乎意识到了这种差异(en.wikipedia.org/wiki/Microsoft_Visual_Studio#Version_history ):格式版本是 8.0,而版本本身是 7.1。我希望我能找到一个官方网站说这绝对是真的。感谢您提供已知示例。这有帮助。
【解决方案3】:

当我用记事本打开一个项目的解决方案文件时,最上面写着visual studio的版本,Format版本号,像这样-


Microsoft Visual Studio Solution File, Format Version 10.00
#Visual Studio 2008

【讨论】:

    【解决方案4】:

    检查编译文件中的二进制签名。
    通过这个你可以得到编译器版本。
    通过编译器版本可以得到 Visual Studio 版本。

    编译器我指的不仅仅是cl.exe,还有资源编译器、链接器等。你们有编译好的资料吗?

    【讨论】:

    • 唉,对于这个项目,我没有编译过的材料,虽然我有机会得到它们。
    • AFAIK .dsw .dsp 可能会在 VS6 之后由 VS 打开。
      所以如果他们仅使用它们来读取/构建它可能是更高版本的 VS。
    • @outmind - 如果您在较新版本的 VS 中打开较旧的 VS 项目,它会“升级”该项目。不确定它是否适用于每个版本(2003 升级 2002 等),但至少从 6.0 到 2003 和 6.0 到 2008 和 2003 到 2008。
    • 我记得它建议你转换,但它可以在没有转换的旧项目上工作吗?
    • 我还没有尝试过,但我想您可以使用 devenv.exe 从命令行编译一个较旧的项目,而无需更改项目文件。也就是说,在大多数情况下,您需要刻意努力避免转换到新版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多