如何使Visual Studio 2010 RC解决方案文件与以前的版本兼容?

时间:2010-02-28 06:21:19

标签: visual-studio visual-studio-2010-rc

我正在尝试使用visual studio 2010.但似乎先前版本不支持通过它创建的.sln文件。是否可以以某种方式保存项目,以前的Visual Studio(2008)版本可以读取它。

2 个答案:

答案 0 :(得分:4)

对于项目,接受的答案是错误的。它对于解决方案文件是正确的,但它们实际上并不像项目文件那么重要(因为根据我的经验,它们不会经常更改,并且它们的数量更少)。

例如,您可能希望查看Noda Time。我们有两个解决方案文件(NodaTime VS2008.sln和NodaTime VS2010.sln),它们加载相同的项目文件。这为开发人员使用不同版本的Visual Studio提供了一个非常实用的解决方案。

手动将项目文件的第一部分更改为:

<Project ToolsVersion="4.0" DefaultTargets="Build" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

(基本上只需将ToolsVersion更改为4.0。)

您也可以让VS2010自动转换项目,然后根据需要进行比较 - 看看是否做了其他您不想要的事情。

此时,当您在VS2008中构建时,您将获得如下输出:

  

项目文件包含ToolsVersion =“4.0”,此版本的MSBuild不支持。将项目视为具有ToolsVersion =“3.5”。

......但根据我的经验,它仍然有用。如果你使用很多设计师等可能会有一些奇怪的东西,但通常看起来效果很好。

答案 1 :(得分:0)

迟到的答案,但对于这艘船上的其他人来说,如果你不介意征服学习曲线,这里有一个选择。下载TortoiseHg的副本并安装它。这是一个版本控制系统。 (还有其他版本控制系统,例如git也可以这样做,但它们必须支持补丁队列,而TeamViewer不支持;但是,这种隔离的用法不会与TeamViewer冲突进行源管理)。 Mercurial包含一个名为MQ的扩展,您应该启用它。修改设置以使Patch Queue Patches保密。 ([mq] secret = true,或在设置下,提交,将Secret MQ Patches设置为True。如果您开始使用Mercurial进行变更管理并且不对补丁进行保密,那么随着补丁承诺发生不可避免的事故,您将遭受巨大的痛苦存储库,必须痛苦地,从每个用户副本中手动删除,只能通过当天休假的一个用户进行爬行。)

接下来,在解决方案文件夹中创建一个存储库。在线查看.hgignore文件,这样你就不会抓到一堆垃圾,但如果这是你唯一的目标,你可以忽略除* .sln和*。* proj文件之外的所有文件。将所有文件放在您使用的最旧版Visual Studio下。接下来,打开解决方案文件并允许Visual Studio执行自动升级。然后打开TortoisHg工作台并创建一个包含所有这些更改的新补丁。

从现在开始,您可以对源进行任何您喜欢的更改,并将它们放在另一个补丁中。当您准备好共享时,打开工作台,弹出所有修补程序,然后将升级修补程序拖到顶部,然后重新弹出所有修补程序,除了升级修补程序。完成(存储库 - >更改历史记录 - >完成修补程序)所有修补程序(升级修补程序除外)。您的更改现已合并到基于您使用的最旧版Visual Studio的解决方案版本中。

当您从其他用户获取更新时,请关闭升级修补程序,通过更改集或共享修补程序应用更改,然后再次弹回升级修补程序。根据需要重复。

这不会捕获对项目或解决方案文件的修改,因为在删除升级修补程序时会弹出这些修改,但99.9%的源代码完全向后兼容。因此,除了向项目添加新项目/现有项目或向解决方案添加新项目之外,这应该涵盖您的大部分工作。对于项目更改,请在最早支持的visual studio版本上执行更改,删除升级修补程序,然后重新创建新的升级修补程序。