繁体   English   中英

如何在VC ++ 2010和VC ++ 2008中无缝地开发相同的工作?

[英]How to develop seamlessly in both VC++ 2010 and VC++ 2008 on the same work?

我想将VC ++ 2010项目与VC ++ 2008项目同步。 它甚至可能吗? 基本上,如果我在VS2010中添加/删除/重命名文件到项目,我希望它被添加/删除/重命名为相应的VS2008项目。 项目选项同步也很棒,但不是必需的。 我也不需要解决方案级别的同步。

我曾被建议在签入或构建时使用脚本或工具“合并”项目文件。 遗憾的是,VC ++项目文件格式已从VS2008更改为VS2010,并没有任何共同之处。

有没有能够在vc9和vc10项目文件之间进行合并/转换的工具? 如果没有其他方法可以解决这个问题,我可能会编写自己的工具。

Gallio OSS项目使用VS2010构建,而大多数贡献者仍然使用VS2008。 为了使*.csproj文件与*.vs2010.csproj文件保持同步,我们使用一个简单的PowerShell脚本,针对每对项目文件运行WinMerge。 没有什么复杂,但非常方便。

您可以在Google Code下载该脚本。 要运行它,只需键入以下命令:

@echo off
powershell "& './Compare VS2010 Projects.ps1' -sync %*"

我希望它有所帮助。

在我的公司,我们遇到了完全相同的问题,并选择使用CMake

至少在你的一个项目上尝试它,它是解决你的问题的理想方案。

它允许用文本文件中的简单语法描述我们的项目,然后CMake从相同的文件生成VS2005,VS2008和VS2010项目。
这样,只修改了Cmake文件,同时更新了所有项目。

简而言之,CMake是:
干净
描述性的
3.原生的
4.安全

因为:
1.可以在文件中读取所有选项和配置,而不是在许多属性面板中读取。
2. CMake语法和语法易于阅读。
3.所有生成的项目都是完整的,与CMake无关。
4.您可以在CMake文件上使用源控制管理器。

我们有50个项目或20个项目的解决方案,这是很多工作,我们使用CMake的原因之一是因为我们需要在Mac上使用Xcode来处理一些项目,这些项目现在是VS和Xcode的常见项目。
但即使对于不同版本的VS,它也是值得的。

源控制有助于此。 我之前的版本通过升级(VS2010)分支并在它和主干(VS2008)之间来回合并更改来完成此操作。 虽然肯定不是无缝的,但它有效。

我不知道VS2010中的项目变化是否会比以前更好或更差!

我相信这是一个命令行选项,用于将VS2008项目文件迁移到VS2010。 因此,一个选项是仅维护VS2008,并重新生成VS2010项目。 缺点是

  • 无法进入VS2010特定项目选项
  • 对VS2010项目的任何更改都将被覆盖,并且不会合并回VS20008。

您只能单独维护这些解决方案/项目文件。 如果你要写你的插件,请告诉我!

我没有在工作中安装2010,所以我大部分时间都来自内存。 从2005年到2008年到2010年,项目文件架构中的变化很小。在大多数情况下,我只是使用文本比较工具(如WinDiff或BeyondCompare)来突出显示更改并将它们从一个文件复制到另一个文件。 我没有玩任何网络项目类型,但我在大多数情况下假设相同的技术将起作用。 由于它们基本上是XML模式,因此您也可以使用XML映射工具来完成相同的工作。

当我转换一个2010年真的不喜欢ClickOnce项目设置的开源项目时,我注意到了。 它会很好地转换,但会在我打开项目后每次都要求我再次转换。 我最终不得不从项目文件中完全删除ClickOnce信息以使其停止。

编辑:我的经验主要是基于C#项目架构,它随着时间的推移没有太大变化。 正如TheSamFrom1984指出的那样,C ++架构中有一些重大变化尚未进入版本10MSDN文档

Visual Studio 2010支持多目标定位,允许您使用VS2010进行开发,并将平台工具降级到V9,以便您可以使用最新工具来维护旧项目。 为什么不这样做呢?

它带有VS2010和VS2008 for C ++开箱即用,这里有一些关于设置VS2005工具链的信息

http://weblogs.asp.net/israelio/archive/2009/10/20/enable-vs-2010-multi-targeting-also-for-vs2005-c.aspx

当VS 2008问世的时候,我确实做到了这一点,我们正在评估它,而团队的其他成员正在使用VS 2005.我不想提交任何新的格式项目文件,因为这会破坏其余的团队,所以我在ruby中编写了一个小脚本,只搜索所有.vcproj文件并将它们重命名为_2008.vcproj 我也为.sln文件做了同样的事情,但也搜索了sln文件中对.vcproj的引用,并将其重命名为_2008.vcproj以便它引用新项目。

接下来,只需加载新的解决方案文件,让迁移向导完成它的工作(我假设VS 2010有一个就像旧版本一样)。 这使您可以并排运行两个版本。 如果团队中的其他任何人对旧项目文件进行了任何更改,则只需重新运行转换,然后向导应该只迁移已更改的项目。

您可能需要进一步调整脚本,即更改vcproj文件中的OutputDirectoryIntermediateDirectory字段,以便您也可以构建到不同的目录。 如果您这样做,那么这意味着您应该能够在同一源树上使用任一版本的Visual Studio进行构建。

您应该将VS2010副本视为分支。 每隔几天和任何重大变化(当然等待测试通过),将更改合并到另一个分支。 这是企业软件环境中广泛采用和接受的实践。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM