8

类似于使用 CruiseControl.NET 和 MSBuild 发布网站

我遇到的情况是 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" />

在顶部,除其他外

4

2 回答 2

3

在您链接的答案中,您是否注意到 msbuild 块中的超时?我敢打赌,您的超时时间要么使用默认超时,要么不够高。我建议提高它或为您的 msbuild 块添加高价值。

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

<timeout>900</timeout>

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

于 2013-10-29T13:28:18.963 回答
0

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

于 2013-12-16T15:30:25.440 回答