构建具有多个项目和多个配置的解决方案

时间:2010-06-23 12:36:35

标签: visual-studio-2010 msbuild-4.0

Visual Studio 2010 Premium,原生WIN32 MFC项目(解决方案中没有.net项目)。

我们有一个包含35个项目的复杂解决方案。我们为该产品提供了许多客户端,我们通常做的是为每个客户创建单独的配置。除少数#define和输出目录更改外,配置没有任何重大更改。它工作正常,但现在产品的每次更改都需要在多个配置中进行更改,并且也容易出错。我们希望使用一个通用配置来清理多个配置,具体取决于某些参数,并将这些参数传递给批处理文件以构建构建。

为客户建立'A' 条件编译#define _BUILD_PROJECT_FOR“A” 它的输出文件夹位于“c:\ builds \ client \ a”中 在解决方案中的35个项目中,我们只需要为该客户提供32个项目

要传递哪些命令和参数,以便我可以通过传递#ifdef,要构建的项目及其输出目录在命令行构建解决方案。

我正在尝试使用msbuild,但无法将预处理器参数传递给编译器。

3 个答案:

答案 0 :(得分:0)

对于预处理程序指令,您可以查看此previous question

答案 1 :(得分:0)

答案 2 :(得分:0)

这对我有用。 使用VS2010,我有几个项目,所有这些项目需要#include一些常见项目中的几个.h文件,我将它们作为共享的.h文件保存在那里。如果我在我正在使用的项目中使用#define ACTION之类的东西,那么在编译时使用#ifdef ACTION时,任何共享项目文件都不会识别它。要解决该问题,我不是在工作项目中添加#define ACTION,而是将其添加到命令行选项中。 你可以在Project Properties,C / C ++>>下找到它。在命令行中,在附加选项框中输入/ D“ACTION”。就编译器而言,它与#define ACTION相同。

附加说明,我还必须“添加”添加>>我希望在我的共享项目中使用的.h和.cpp共享文件的现有项目,以满足我的抱怨链接器。 我希望这会有所帮助。