如何让TeamCity使用Rake runner识别msbuild编译错误

如何让TeamCity使用Rake runner识别msbuild编译错误,msbuild,teamcity,rake,Msbuild,Teamcity,Rake,我有一个带有Rake构建脚本的.NET项目。Rake调用msbuild.exe执行实际编译。当我使用Rake runner配置TeamCity 5.0构建时,TC不会识别编译错误。发生编译错误时: 构建确实中止并被标记为失败 日志概览不包含编译错误消息。我必须进入buildlog->All Messages查看失败 未通过电子邮件报告编译失败。我的电子邮件通知模板中的{COMPILATION_ERRORS}占位符被替换为空字符串 我必须做什么才能让TC识别编译错误?如中所示,答案是告诉MSBui

我有一个带有Rake构建脚本的.NET项目。Rake调用msbuild.exe执行实际编译。当我使用Rake runner配置TeamCity 5.0构建时,TC不会识别编译错误。发生编译错误时:

  • 构建确实中止并被标记为失败
  • 日志概览不包含编译错误消息。我必须进入buildlog->All Messages查看失败
  • 未通过电子邮件报告编译失败。我的电子邮件通知模板中的{COMPILATION_ERRORS}占位符被替换为空字符串
  • 我必须做什么才能让TC识别编译错误?

    如中所示,答案是告诉MSBuild使用一个特殊的TeamCity日志侦听器,使用“/l”开关:

    msbuild/l:JetBrains.BuildServer.MSBuildLogger.MSBuildLogger,
    

    dll位于TeamCity代理目录中:{agent}/plugins/dotnetplugin/bin/JetBrains.BuildServer.MSBuildLoggers.dll

    可以通过解析
    TeamCity.dotnet.nunitlauncher.msbuild.task
    系统属性找到dll
    msbuild /l:JetBrains.BuildServer.MSBuildLoggers.MSBuildLogger,<path to dll>