0

我们正在使用 CruiseControl.NET,它调用 MSBuild 脚本。在调试构建脚本的同时,我们不断地进行小改动,并通过在 IIS 上运行的 CruiseControl.NET Web 控制台运行构建。一切都只是在一台机器上,因为我们只是在测试。

我注意到我们在 MSBuild 脚本中所做的一些更改没有被采纳。有时他们会通过,有时服务器的几个版本已经过时了。有时重新启动 IIS 服务可以解决问题。有时甚至这都行不通。

有人知道后台发生了什么吗?是否有一些我们必须为 Web 应用程序清除的缓存?它可能在哪里?

编辑:澄清一下,我所有的东西都在一台机器上,因为我仍处于测试阶段。所以我不认为源代码控制应该是一个问题。我的 ccnet.config 只是调用 MSBuild 目标。这是一个简化的示例:

<project>
    <tasks>
        <msbuild>
            <executable>$(netFrameworkRoot)\MSBuild.exe</executable>
            <projectFile>C:\MyProject\ProductBuild.proj</projectFile>
            <targets>BuildProject</targets>
        </msbuild>
    </tasks>
</project>

ProductBuild.proj 是一个手动编码的 MSBuild 脚本,可构建许多其他 .NET 解决方案并将安装程序与 vdproj 打包在一起。

当我在 CruiseControl 上运行构建时,对构建脚本所做的更改似乎并不总是生效。我想重新启动 CCNet 服务是最安全的,但我希望不必中断当前正在运行的构建。

4

1 回答 1

1

“通过在 IIS 上运行的 CruiseControl.NET Web 控制台运行构建” 据我所知,Web 控制台不进行任何构建。它会向 ccnet.exe 或 ccservice.exe 发送一条消息,它们一直在运行并在端口 21234 上侦听(除非指定到另一个端口)但是要尝试解决您的问题,您是否有您的构建项目总是得到最新的?您的 MSBuild 文件是否在源代码管理中?你用的是什么源代码控制?您是否正在更改构建服务器上工作区中的 MSBuild 文件?您应该在此处发布您的项目副本,以便我们尝试确定错误?我可以告诉你,就 CruiseCONtrol 而言,IIS 和 Web 缓存与实际编译无关。除非您在谈论您正在构建的项目需要 IIS 吗?

于 2009-02-06T15:13:19.250 回答