通过MSBuild构建vcxproj,包括记录到项目中指定的或从props文件继承的默认日志文件

时间:2013-07-01 20:44:32

标签: visual-c++ logging visual-studio-2012 msbuild

当Visual C ++构建(vcxproj)文件形式为Visual Studio或者您通过devenv(构建sln)构建它时,您将获得由项目BuildLog.Path指定的文件中的vcxproj构建的日志形式。 此项的默认值为$(IntDir)\ $(MSBuildProjectName).log

我实际上发现这个功能对每个项目的后期构建分析非常有用。

我想通过从msbuild.exe构建来模拟这种行为。

有严重的构建自动化原因,为什么我现在不能使用devenv(据我所知,我不能通过没有sln的devenv构建vcxproj)。

我试图通过以下方式解决此问题:

  1. 创建确定BuildLog.Path值的自定义目标并将其返回
  2. 然后使用msbuild命令行执行任务Exec,包括使用filelogger创建日志文件的参数
  3. 问题是它不起作用!

    有一件有趣的事情是默认值由:

    指定
    <ItemDefinitionGroup>
       <BuildLog>
          <Path>$(IntDir)\$(MSBuildProjectName).log</Path>
       </BuildLog>
    </ItemDefinitionGroup>
    

    如果我理解正确,则为每个BuildLog项指定元数据路径。

    默认情况下,没有BuildLog项(因为在vcxproj中没有包含在BuildLog项中)。

    有没有人解决这个问题,或者可以解释如何解决它?

    1. 确定BuildLog.Path元数据或
    2. 使用msbuild构建vcxproj文件,将日志文件记录到vcxproj中指定的日志文件或继承自props文件

0 个答案:

没有答案