【问题标题】:devenv command line does not show error for defective projectsdevenv 命令行不显示有缺陷项目的错误
【发布时间】:2012-10-16 07:09:20
【问题描述】:

我们使用 Jenkins 自动构建我们的解决方案。我们通过命令行调用devenv(Visual Studio 2010):devenv PathToProject\Project.sln /build Release

当解决方案包含有缺陷的项目(*.vdproj、*.csproj)时,在 Visual Studio IDE 中打开解决方案将导致出现错误消息。但是在使用上述命令行构建解决方案时,根本没有显示任何错误消息,因此 Jenkins 报告成功。

如果您想重现问题,只需在编辑器中打开 vdproj 文件,然后删除文件中某处的 }。

如何解决这个问题?

【问题讨论】:

  • 我知道这显然是您目前面临的一个问题,但您真的经常最终得到损坏的项目文件吗?如何/为什么?你不应该解决这个问题吗?
  • 当然,这种情况不会经常发生。但是持续集成的意义恰恰是应该自动检测到这样的问题。

标签: visual-studio-2010 continuous-integration devenv


【解决方案1】:

在 Visual Studio 2012 上,/Out 将构建消息写入文本文件。

devenv.exe YourVisualStudioSolution.sln /build "Debug|Win32" /Out "YourLogFile.txt"

According to MSDN,这个开关应该也适用于 Visual Studio 2010。

【讨论】:

  • 感谢您的提示。 Jenkins 无论如何都会收到输出并使其在构建的“控制台输出”页面上可用,即将输出写入文件只会使事情变得更复杂。 devenv 进程的返回值不会改变,不是吗?这是这里的关键问题 - 在失败的情况下返回失败而不是成功。
  • 唯一的方法是解析 devenv 控制台输出的最后一行,即使用tail 之类的工具显示========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== 的行。
  • @rwong 另一个烦恼是在一个有 23 个项目的解决方案中,这些信息是不够的;如果它说“22 成功,1 失败”,它并没有说明哪一个失败。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多