发展无缝地在这两个VC++2010年和VC++在2008年同样的工作?
题
我想同步VC++2010年项目VC++2008年的一个。它甚至有可能吗?基本上,如果我是增加或删除/重新命名的文件的一个项目VS2010,我想它是添加或删除/重新命名为相应的VS2008项目。项目选择同步会很棒,但不是必要的。我不需要一个解决方案级同步。
编辑:我已经建议"合并"的项目文件在检查,或建立时间与一个或脚本工具。不幸的是,VC++项目文件格式已经改变,从VS2008到VS2010并没有什么共同点。所以我的问题是多样的: 是否有一个具有能够合并/转换之间的vc9和vc10项目的文件? 我可能会写我自己的工具,如果没有任何其他方式解决这一问题。
解决方案
在我的公司,我们遇到了完全相同的问题,并选择使用 CMake 。
至少在您的某个项目上试用它,它是解决您问题的理想解决方案。
它允许用文本文件中的简单语法描述我们的项目,然后CMake从相同的文件生成VS2005,VS2008和VS2010项目。
这样,只修改了Cmake文件,同时更新了所有项目。
简而言之,CMake是:
干净的
2.描述性的
3. native
4.安全
由于:结果
1.可以在文件中读取所有选项和配置,而不是在许多属性面板中读取
2. CMake语法和语法易于阅读。
3.所有生成的项目都是完整的,与CMake无关
4.您可以在CMake文件上使用源控制管理器。
我们有50个项目或20个项目的一些解决方案,这是很多工作,我们使用CMake的原因之一是因为我们需要在Mac上使用Xcode来处理一些项目,这些项目现在对于VS和Xcode的。结果 但即使对于不同版本的VS,它也是值得的。
其他提示
Gallio OSS 项目是使用VS2010构建的,而大多数贡献者仍使用VS2008。为了使 * .csproj
文件与 *。vs2010.csproj
文件保持同步,我们使用一个简单的PowerShell脚本,针对每对项目文件运行WinMerge。没有什么复杂,但非常方便。
您可以在 Google Code 。要运行它,只需键入以下命令:
@echo off
powershell "& './Compare VS2010 Projects.ps1' -sync %*"
我希望它有所帮助。
源控制有助于此。我之前的版本通过升级(VS2010)分支并在它和主干(VS2008)之间来回合并更改来完成此操作。虽然肯定不是无缝的,但它确实有效。
我不知道VS2010中的项目变化是否会比以前更好或更差!
我相信这是命令行的选择迁移VS2008项目文件VS2010.这样一个选择就是只保持VS2008和再生的VS2010项目。缺点是
- 不能够进入VS2010具体项目的选择
- 任何改变VS2010项目将复盖和不合并的回VS20008.
您只能单独维护这些解决方案/项目文件。如果你要写你的附加组件,请告诉我!
我没有在工作中安装2010,所以我主要从内存开始。从2005年到2008年到2010年,项目文件架构中的变化很小。在大多数情况下,我只是使用文本比较工具(如WinDiff或BeyondCompare)来突出显示更改并将它们从一个文件复制到另一个文件。我没有玩任何网络项目类型,但我在大多数情况下假设相同的技术将起作用。由于它们基本上是XML模式,因此您也可以使用XML映射工具来完成相同的工作。
当我转换一个2010年真的不喜欢ClickOnce项目设置的开源项目时,我注意到了。它会很好地转换,但会在我打开项目后每次都要求我再次转换。我最终不得不从项目文件中完全删除ClickOnce信息,以使其停止。
编辑: 我的经验主要基于C#项目架构,随着时间的推移,它没有太大变化。正如TheSamFrom1984指出的那样,C ++架构中有一些重大变化尚未进入关于版本10的MSDN文档。
Visual Studio 2010支持多目标定位,允许您使用VS2010进行开发,并将平台工具降级到V9,以便您可以使用最新工具来维护旧项目。为什么不这样做?
它带有VS2010和VS2008 for C ++开箱即用,这里有一些关于设置VS2005工具链的信息
当VS 2008问世时,我确实做到了这一点,而我们正在评估它,而其他团队正在使用VS 2005.我不想提交任何新的格式项目文件,因为它会破坏它团队的其他成员,所以我在ruby中编写了一个小脚本,只搜索了所有 .vcproj
文件,并将它们重命名为 _2008.vcproj
。我也为 .sln
文件做了同样的事情,但也搜索了 sln
文件中对 .vcproj
的引用,并将其重命名为<代码> _2008.vcproj ,以便它引用新项目。
接下来,只需加载新的解决方案文件,然后让迁移向导完成它的工作(我假设VS 2010就像旧版本一样)。这使您可以并排运行两个版本。如果团队中的其他人对旧项目文件进行了任何更改,则只需重新运行转换,然后向导应该只迁移已更改的项目。
您可能需要进一步调整脚本,即更改vcproj文件中的 OutputDirectory
和 IntermediateDirectory
字段,以便您构建不同的目录也是。如果你这样做那么这意味着你应该能够在同一个源树上使用任一版本的Visual Studio进行构建。
您应该将VS2010副本视为分支。每隔几天和任何重大变化(当然等待测试通过),将更改合并到另一个分支。这是企业软件环境中广泛采用和接受的做法。