跨多个Visual Studio版本维护VC ++项目?

时间:2016-02-11 13:44:16

标签: visual-studio visual-c++ migration project-organization

我们有一个仅限Windows桌面产品套件,它包含多个.exe应用程序,并且(显然)这些应用程序之间有很多共享库。有大约20个exe应用程序,也许还有大约20个共享库,每个应用程序都使用这些应用程序(有些库是非常具体的,有些只是你的好(?)旧的FooUtils.dll)大多数代码是C ++,一些C#。

目前,所有这些都驻留在single Visual Studio 2005解决方案中,并且都是一起构建和发布的。这很好用,每个开发人员总是可以编辑/查看/调试他需要的任何代码。该产品套件中约有15个开发人员(混合C ++ / C#)。

现在问题

由于迁移压力(语言功能,新的第三方组件),将某些应用程序(阅读.exe项目)迁移到较新的Visual Studio版本变得越来越紧迫。一些VS 2010可能(第三方依赖)一些VS2015。而 some 我们只是从VS2005迁移它们的资源(第三方约束,以及时间/预算限制)。

这意味着几个Visual Studio版本必须存在几个共享的 C ++ 库。 (与exe项目相反 - 这些只是为一个选定的VS版本构建/维护。)

现在问题

给定一组(内部)共享库需要为多个不同的Visual-C ++创建 - 并且应该可以轻松编辑和维护适用于所有开发人员,我们如何使Utils.vcproj(2005)的Utils.vcxproj(2010)和Utils.vcxproj(2015)保持同步?

主要是为了避免手动维护项目中包含的所有文件,还要考虑这些项目的项目设置/ .[vs]props设置。

到目前为止的想法:

  • 只需在3个不同的解决方案中接受3个项目文件的烦人三重维护(呃。)
  • 使用其中一个vc..项目文件作为主项目,并自动生成(如何??!)从中生成其他vc..文件。
  • 使用CMakePremake等工具,......生成这些共享共享库项目。 (这意味着为我们的开发人员引入一个外国配置工具)

1 个答案:

答案 0 :(得分:0)

如果要避免在不同版本的Visual Studio中手动更新项目文件,则必须为这种或那种类型的项目配置主配置。您列出的两个选项基本上是您的选择:

  • 使用一个项目版本作为“主”。在这种情况下,主设备必须是最旧的版本(在您的情况下是VS2005?)。 Visual Studio具有project upgrade功能,可将较旧的项目转换为较新的版本。在较新版本中加载旧项目时,会提示您进行升级。可以使用一些简单的脚本自动执行此过程。使用devenv.exe <project/solution file> /upgrade,您可以从command line升级项目。
  • 使用CMake / Premake / etc。这些增加了一些开销,但是支持新的平台和配置不那么轻松。如果添加新的开发工具对您的过程来说很麻烦,并且您只支持Visual Studio,那么第一个选项可能更合适。