views:

746

answers:

1

We're using CruiseControl.NET which invokes an MSBuild script. While debugging the build script, we make small changes constantly and run the build through the CruiseControl.NET web console running on IIS. Everything is just on one machine though since we're just testing.

I've noticed that some changes we make in the MSBuild script aren't picked up. Sometimes they push through, sometimes the server is a few versions out of date. Sometimes restarting IIS services does the trick. Sometimes not even that works.

Is anyone aware of what's happening in the background? Is there some cache we have to clear for web apps? Where could it be?

Edit: To clarify, all my stuff is on a single machine as I'm still in the testing stage. So I don't think source control should be an issue. My ccnet.config simply calls the MSBuild target. Here's a simplified sample:

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

ProductBuild.proj is a hand-coded MSBuild script that builds a lot of other .NET solutions and packages an installer with a vdproj.

It seems that changes made to my build script do not always take effect when I run a build on CruiseControl. I guess it would be safest to restart the CCNet service, but I was hoping I wouldn't have to interrupt currently running builds.

A: 

"run the build through the CruiseControl.NET web console running on IIS" As far as I know the Web Console does not do any building. It sends a message to either ccnet.exe or ccservice.exe, which ever is the on running and listening on port 21234 (unless specified to another port) But to try and get to your problem, Do you have your build project to always get latest? Is your MSBuild file in source control? What source control are you using? Are You changing the MSBuild file in the workspace on the build server? You should post a copy of your project here so we can try to determine the error? I can tell you that as far as CruiseCOntrol is concerned IIS and the web cache has nothing to with the actual compiling. Unless you are talking about the project you are building needs IIS?

Alex
Right, the Web Console shouldn't have anything to do with building other than invoking the operation via RMI. It's the CruiseControl service itself that does the building. So could it be that the service does some caching? Everything is on my local machine, so Getting Latest shouldn't be a problem.
Jeremy