如何将Visual Studio .NET 2008解决方案转换为Visual Studio .NET 2005?

假设解决方案只包含类,并且这些类都写入.NET 2.0规范。 如果要在Visual Studio 2008中打开,转换和保存该解决方案,是否可以稍后在Visual Studio 2005中重新打开解决方案,并对.SLN文件进行一些最小的修改?

怎么会这样做呢?

如果解决方案中包含的所有类都已写入.NET 2.0规范,是否有一个工具可以从2008年到2005年“转换”.SLN文件?

通常,您需要对.SLN文件执行的唯一操作是更改文件顶部的版本号。

您的CS项目文件也几乎可以,如果不是,可以对它们进行调整,以便它们在2005年和2008年都可以。

我们运行了一段时间,两个解决方案文件(05和08)共享同一组CS项目文件。

但请注意,您不能在这两个版本之间共享VC项目文件。

项目文件的’tweak’如下:

在VS2008上创建的CS项目将包含以下行:

 

VS2005会对此产生阻碍,您需要将其更改为以下内容:

  

后者将适用于2005年和2008年。

如果您在2008年没有使用任何“花哨”function,根据我的经验,唯一改变的是几个地方的版本号。 这可以手动编辑(它位于文件IIRC的顶部)。 这至少值得一试。 如果你使用VS2008特有的function(设计师等)它可能无法工作,但对于简单的类库,我已经成功地做到了这一点。

您可能对我之前写过的关于VS2005和VS2008共存的博客文章感兴趣。

这里有一个转换器http://www.emmet-gray.com/Articles/ProjectConverter.htm (也适用于VS 2010)。

还有http://www.dsmyth.net/wiki/Downloads_VS2008ToVS2005Patcher.ashx
(链接目前已损坏?)。

我也发现这个http://www.codeplex.com/Vs2008BackMigration但我没有测试它。

是的,如果您“降级”解决方案文件,则可能。

不,我知道没有这样的工具,我看了。

你有三个选择:

  1. 不在2008年打开解决方案文件,因此永远不会升级它
  2. 不要将客户端版本与相同的文件混合(即坚持2005年,或者每个人升级)
  3. 保留2005年和2008年的单独解决方案文件,确保两者中都存在所有相同的项目

感谢@Will Dean提醒我项目文件确实可以共享。 请注意,它们被2008年编辑所感动,但之后可以在2005年开放。

你可以试试这个。 因人而异

http://www.emmet-gray.com/Articles/ProjectConverter.htm

我记得几个月前它被发布在Jon Skeets博客上,似乎得到了人们的赞许

没有直接的方法,如果你尝试,这是一个很高的订单。 最简单的方法是创建一个新的2005项目并添加你的类。

对于初学者:这些是你看到的差异:

.csproj文件:(这些基于MSBuild架构)

(编辑)

  • ToolsVersion
  • 的ProductVersion
  • ProjectVersion

(去掉)

  • OldToolsVersion
  • TargetFramework

.sln文件:(没有架构)

  • 格式版本10.0

等等