我如何让msbuild像vs2013一样构建我的c ++项目

时间:2014-06-09 14:48:17

标签: visual-c++ msbuild

我试图将一些编译时属性注入到像这样的vs2013 c ++项目中

在vcxproj文件中,我添加并默认了INCREMENT_BUILD_VERSION,如下所示:

  <Project> ...
  <PropertyGroup>
       <IBN>INCREMENT_BUILD_VERSION=666</IBN>
  </PropertyGroup>

并像这样使用它: 在编译器部分

<ClCompile> ... 
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions);$(IBN)</PreprocessorDefinitions>

并在资源部分

<ResourceCompile> ...
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions);$(IBN)</PreprocessorDefinitions>

然后我在头文件中使用默认属性:

#define PG_MAJOR_VERSION 6
#define PG_MINOR_VERSION 1
#define PG_MICRO_VERSION 22
#define PG_BUILD_VERSION INCREMENT_BUILD_VERSION <--- property from vxproj

#define PG_BUILD_ALL_STR_VERSION STRINGIZE(PG_MAJOR_VERSION) "." STRINGIZE(PG_MINOR_VERSION) "." \                                   STRINGIZE(PG_MICRO_VERSION) "." STRINGIZE(PG_BUILD_VERSION)

#define PG_BUILD_ALL_FILE_VERSION PG_MAJOR_VERSION,PG_MINOR_VERSION,PG_MICRO_VERSION,PG_BUILD_VERSION
#pragma message("INFO: SETTING BUILD VERSION TO " PG_BUILD_ALL_STR_VERSION)

当我在ide中构建它时,一切都运行得非常好,我收到了#pragma消息 信息:将构建版本设置为6.1.22.666

然而,只要我尝试通过msbuild.exe构建它 C:\ Progra~2 \ MSBuild \ 12.0 \ bin \ msbuild sol.sln / p:Configuration =&#34; Release&#34; /吨:重建

我从资源编译器收到有关缺少INCREMENT_BUILD_VERSION的错误 从编译#pragma我得到消息

信息:将构建版本设置为6.1.22.INCREMENT_BUILD_VERSION

我想我没有正确定义属性,而msbuild忽略了它,但它在IDE中没问题。

任何想法?

TIA。

0 个答案:

没有答案