0

我们有一个通过批处理文件构建的大型非 Visual Studio C++ 项目。我已将它集成到 Visual Studio 中作为 makefile 项目,在项目属性中自定义“构建命令行”,效果很好并且已经完成了一年多。

我现在希望介绍 Team Foundation Server 并配置自动构建。

如果我在 Visual Studio 中构建项目,那么项目将正常构建。
如果我使用自动构建服务器来构建项目,构建每次都会失败

在构建报告中查看日志文件的选项显示为灰色。给出的报告是

命令“Autobuild.cmd”以代码 1 退出。

其中 autobuild 是解决方案的“构建命令行”中指定的 cmd 文件。

谁能想到可能是这种情况的原因,我假设构建服务器只会使用“要构建的项目”框中指定的项目运行构建命令。如果是这种情况,那么我看不出它为什么会失败。

4

2 回答 2

1

有很多可能的原因;不幸的是,您没有提供足够的信息来回答这些问题。

要尝试的第一件事是将构建定义日志记录级别更改为Diagnostic. (您也可以在对新构建进行排队时执行此操作)。

我还建议实际上将您的 makefile 包装在 msbuild.proj 文件中。

像这样简单的东西:

<Project ToolsVersion="4.0" DefaultTargets="build"
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="build">
    <Exec Command="autobuild.cmd" />
  </Target>
</Project>

Exec 任务有很多选项可以自定义 cmd的调用方式,并且可以帮助您诊断错误。

一般来说,如果您想利用 TFS 构建,我建议您将尽可能多的 autobuild.cmd 迁移到 msbuild。MSBuild 是 TFS 的“makefile”语言,可以这么说。

于 2013-03-27T15:26:39.020 回答
0

在您的构建定义中,您可以选择记录,在那里您可以将其更改为Verbose记录。也许你会在你的日志文件中得到一些信息。

对于 exited with code 1 的问题,我认为您需要添加一些额外的信息行以在 cmd 程序中打印,并且当您登录 TFS Build 时,您可能会看到有关它的更多信息。

于 2013-03-27T15:19:19.990 回答