为什么每次发行新版的Visual Studio时都需要升级Visual Studio解决方案?

5
这很可能是 Visual Studio 历史上最烦人的“功能”之一,我不明白为什么会有这种情况——从来没有

为什么 CodePlex 项目需要关心我使用的 Visual Studio 版本呢?

我能想到的唯一原因是,某些版本的 Visual Studio 可能会检查程序集以查找属性,以确定在“可视化设计器”和“属性编辑器”中显示什么。但为什么这会导致 Visual Studio 无法打开项目并允许我浏览其内容和编译呢?

在我看来,在 .NET 中的开源受到了 Visual Studio 愚蠢的依赖管理的限制。换句话说,如果我使用的是 Visual Studio 2008,而你使用的是 Visual Studio 2010,则我们有不同的解决方案文件。


1
我同意 - 如果较新的版本可以在“兼容模式”下打开早期项目版本,那将是很好的。可能值得去MS Connect看看是否有一个开放的增强功能可以投票支持。 - Will A
我也希望如此,但不幸的是我们必须升级。 - Michael Eakins
2个回答

1

我相信这个目的涉及到了你在评论中提到的内容。如果你正在使用2008,而我使用2010并编译它,那么你怎么可能再次运行它呢?2010是向后兼容的,但2008没有办法使自己向前兼容。

因此,通过在2010中重新编译项目,我确保没有2008用户会错误地认为他们可以编译它。


1
@Meakins,你的回答似乎是在提出问题:你的意思是VS解决方案是特定版本的,因此不同版本之间的解决方案不兼容? - stakx - no longer contributing
我想说的是,没有办法让程序向前看并且每次都知道下一个构建或版本所需的内容。正如这个问题的发布者指出的那样,解决方案在不同版本之间是不兼容的。 - Michael Eakins
@Meakins:然而,您没有解释为什么VS2010不能使用VS2008解决方案文件,或者为什么VS2010不能保存VS2008解决方案文件。 - David Thornley
你因为我回答问题而给我点了踩?我建议你应该仔细阅读答案,而不是根据你所理解的来评判它们。 - Michael Eakins
@Meakins:我给你点了踩,因为你没有回答问题。你明显假设一个在2010年编译的项目不能在2008年使用,而问题是为什么会这样。 - David Thornley
显示剩余2条评论

1

http://blogs.msdn.com/b/visualstudio/archive/2010/03/15/why-does-visual-studio-2010-convert-my-projects.aspx

这是一个关于为什么Visual Studio将您的项目转换为2010格式的站点示例。
例如,Visual Studio运行自定义工具,如设计师的单个文件生成器,以输出代表对设计的更改的代码。许多这些自定义工具在较新的IDE中得到升级或完全替换。在转换过程中,IDE知道要替换或升级的自定义工具。为了使往返工作正常,VS需要旧版本和新版本的自定义工具相互理解,以确保旧版和新版设计师可以并存。除了设计师之外,还会影响以下文件:资源编辑器、向导、代码段、项和项目模板、图表和建模工具等等。
由于2010版本了解2008版本有哪些工具,因此它可以向前转换以与2010使用的自定义工具兼容。2008版本不知道2010版本使用了什么工具,它怎么可能呢?因此,无法进行反向转换,因为它不知道需要转换什么,也不知道如何进行转换。

我投了你一票 @myermian,因为@David Thornley显然没有阅读回复。 - Michael Eakins
@Meakins:我确实看了回复。博客文章解释说有自定义工具,这些工具在不明确说明原因的情况下在版本之间更改。然后错误地声明旧和新工具需要相互理解,而实际上只需要新工具理解旧文件格式即可。最后一段简单地重复了博客摘录,并得出结论,由于VS2008无法进行转换,因此不可能。您是否愿意详细地反驳我的理解或撤回关于我的声明? - David Thornley
它在2010年编译后,在2008年就无法编译! - Michael Eakins
@myermian:这篇博客文章误导人的地方在于它暗示了不同的工具需要不同的格式,而且不能进行反向转换。显然,VS2010工具将做一些与VS2008工具不同的事情。据推测,一些来自VS2010工具的信息可能不在VS2008文件格式中。但这并不意味着不能有完全的往返兼容性,08->10->08(反过来更是一个问题)。这种缺陷不是开发系统固有的属性,所以微软要么不想要往返兼容性,要么设计的方式使其成本太高。 - David Thornley
1
@user429921:好消息是他们暗示下一个版本将提供这种"往返"功能。 - myermian
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接