CruiseControl.NET进程退出事件收到,构建结果出错

时间:2013-10-28 20:11:25

标签: cruisecontrol.net

Using CruiseControl.NET and MSBuild to publish a website类似

我遇到的情况是ccnet.config中的MSBuild任务看起来确实有效,但最后这个过程终止于

standard-output stream closed -- null received in event
standard-error stream closed -- null received in event
process exited event received

从命令行运行时,一切都很顺利。

我查看了我能想到的所有日志文件,但是我很难过,我已经花了很多时间。请帮忙!

更新11/13:根据CCNET.CONFIG

的要求摘录
        <msbuild>
            <executable>$(msBuildExe)</executable>
            <projectFile>"src\Solutions\Apprentice - Core Tests - VS11.sln"</projectFile>
            <buildArgs>/noconsolelogger /p:Configuration="$(msbuildConfig)" /v:diag</buildArgs>
            <logger>$(ccnet)\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
            <environment>
                <!-- allow NuGet to auto restore packages -->
                <variable>
                    <name>EnableNuGetPackageRestore</name>
                    <value>true</value>
                </variable>
            </environment>
        </msbuild>

使用

    <cb:define msBuildExe="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" />
    <cb:define msbuildConfig="Debug - No MSEL" />

在顶部,等等

2 个答案:

答案 0 :(得分:3)

在您链接的答案中,您是否注意到msbuild块中的超时?我打赌你的使用默认超时或不够高。我建议加大它或为你的msbuild块添加一个高值。

您提到的错误与使用c#中的流程类的流程超时非常相似。

<timeout>900</timeout>

根据http://www.cruisecontrolnet.org/projects/ccnet/wiki/MsBuild_Task,默认超时为600秒或10分钟。

答案 1 :(得分:0)

这是一个想法:如果你从命令行运行并且一切正常,你可以让CCNET只使用旧版本的配置。只需重新启动Windows服务中的CCNet.Config服务,看看是否可以修复它。