VS2010和VS2008项目的兼容性问题

21

请问VS2010是否会使用与2008相同的项目和解决方案文件格式,还是需要先将2008项目文件升级到2010格式才能在该版本中打开?


1
请阅读Visual Studio博客上的以下文章。[为什么Visual Studio 2010会转换我的项目?] http://blogs.msdn.com/visualstudio/archive/2010/03/15/why-does-visual-studio-2010-convert-my-projects.aspx - Daniel Ballinger
8个回答

15
"Visual Studio 2010将使您能够轻松地将项目从以前的Visual Studios版本转移到VS 2010,我将称此过程为从VS 200X转换到VS 2010的“转换”过程... VS 2010还允许您将项目的目标框架版本从.NET 2.0、3.0或3.5更改为.NET 4.0... 我将称此过程为“升级”..."(摘自http://vishaljoshi.blogspot.com/2009/05/vs-2010-project-conversion-upgrade.html)"

3
太糟糕了。他们在2005/2008项目中也做了相同的事情——让在不同版本的开发工具中测试同一个项目变得困难。 - Scott Ivey
1
VS 2005 可以读取 VS 2008 项目文件,因此您只需创建新的解决方案文件。我希望在 VS 2010 中也能用同样的技巧。 - Jonathan Allen
1
对于C#项目,必须修改VS2008项目文件才能让VS2005读取。这是一个小修改,但仍然是一个修改。 - John Saunders
2
他在谈论如何保留旧的VS 2008/2005项目以及.sln和其他文件,使它们不会被升级,但仍然可以在VS 2010中使用。 - PositiveGuy

14

谢谢,这很方便,因为我仍在使用VS2008,而越来越多的项目是在2010中。 - user276648

11

有一个技巧。

  1. 创建一个新的解决方案文件。
  2. 添加所有现有项目,并在此过程中升级它们。
  3. 在VS 2008中使用旧的解决方案文件,在VS 2010中使用新的解决方案文件。

我之前也在VS 2005/2008上尝试过同样的操作,没有遇到任何问题。


如果项目文件在源代码控制下,而团队的其他成员正在使用VS 2008,则这并不能解决问题。 - Richard Anthony Freeman-Hein
11
Visual Studio 2008可以读取Visual Studio 2010的项目文件,但无法读取其解决方案文件。 - Jonathan Allen
2
更好的做法是,不要创建一个新的解决方案文件,只需复制原始文件。将它们重命名以指示哪个是2008年的,哪个是2010年的。然后打开并升级2010年的文件。尽管其中的项目已经“升级”,但2008年的文件仍可以在VS 2008中使用。 - Ryan Lundy
抱歉,我不确定我理解了您的意思,我已按照Kyralessa所说的做了:VS2010转换了我的项目并创建了以vcxproj结尾的新项目文件,但是VS2008无法打开这些文件。那么这个技巧应该如何使用呢?因为我不介意有2个解决方案文件,但我不想为每个项目拥有2个项目文件。 - Franck Mesirard
1
抱歉,我不知道如何在VC++项目中实现。我只在C#和VB上使用过这个技巧。 - Jonathan Allen

6

实际上,如果你尝试在只安装了VS2008的计算机上打开一个VS2010项目,你将会遇到一个问题。

VS2010会更改项目文件中的MSBuild引用(.target文件),如果你不将该引用更改回VS2008的默认值,则无法在VS2008中编译。但是,如果在同一台机器上安装了两个版本,它就可以正常工作。

因此,你可以让团队的一半安装VS2010版本,而从未使用它,他们可以随意使用VS2008。

然而,我不确定框架4.0版本中特定于语言的功能如何与VS2008配合使用,我的理论是IDE可能无法很好地处理它。因此,如果你使用C#但目标是VS2008和VS2010,请避免使用新的语言特性。


3

你可以拥有两个不同的解决方案文件。通常在开源项目中,他们会制作例如project-2008.sln和project-2005.sln。


最简单的解决方案总是最好的! - Marek
如果项目是在VS2010中创建的,则无法帮助。 - stoic

2

将Visual Studio 2010解决方案文件(.sln)转换为Visual Studio 2008解决方案文件(.sln),只需按照以下步骤操作:

  1. 在.sln文件中将“Format Version 11.00”替换为“Format Version 10.00”
  2. 在.sln文件中将“# Visual Studio 2010”替换为“# Visual Studio 2008”
  3. 在.csproj中将“ToolsVersion=''4.0''”替换为“ToolsVersion=''3.5''”
  4. 在.csproj中将“v10.0”替换为“v9.0”

1

在记事本中打开解决方案文件(.sln),并将 Microsoft Visual Studio Solution File, Format Version 11.00

Visual Studio 2010

更改为 Microsoft Visual Studio Solution File, Format Version 10.00

Visual Studio 2008

然后从Visual Studio 2008中打开解决方案文件。


1

VS2010将能够处理2.0到4.0框架项目,因此如果您有使用其中任何一个框架的项目,您不太可能需要担心任何更新或导入等问题,以便快速上手当前项目。


1
是的,那是一个非常笼统的说法,并不适用于每个人。例如,在与大型团队合作时,您不能强制所有人升级到VS2010,只因为一个开发人员这样做了。还有许可证方面的考虑…… - Dave

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