我们有一个很大的非Visual Studio C ++项目,它是通过批处理文件构建的。我已经在Visual Studio中将它集成为一个makefile项目,并在项目属性中定制了“Build Command Line”,这种方法运行良好,已经完成了一年多。
我现在要介绍Team Foundation Server并配置自动构建。
如果我在Visual Studio中构建项目,则项目正常构建 如果我使用自动构建服务器来构建项目,则构建每次都会失败
在构建报告中查看日志文件的选项显示为灰色。给出的报告是
命令“Autobuild.cmd”退出,代码为1。
其中autobuild是解决方案的“构建命令行”中指定的cmd文件。
任何人都可以想到可能出现这种情况的原因,我假设构建服务器只运行Build命令,并在“要构建的项目”框中指定项目。如果是这种情况,那我就不明白为什么它会失败。
答案 0 :(得分: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 task有很多选项可以自定义cmd的调用方式,并且可以帮助您诊断错误。
一般情况下,如果您想利用TFS构建,我建议尽可能多地将autobuild.cmd迁移到msbuild。 MSBuild是TFS的“makefile”语言,可以这么说。
答案 1 :(得分:0)
在您的构建定义中,您可以选择日志记录,您可以将其更改为Verbose
日志记录。也许你在日志文件中得到了一些信息。
对于退出代码1的问题,我认为您需要添加一些额外的信息行以在cmd程序中打印,当您在TFS Build中的登录处于活动状态时,您可能会看到有关它的更多信息。