2009-02-06 28 views
0

我们使用的是调用MSBuild脚本的CruiseControl.NET。在调试构建脚本的同时,我们不断进行小的更改,并通过在IIS上运行的CruiseControl.NET Web控制台运行构建。尽管我们只是在测试,但一切都在一台机器上。从CruiseControl.NET调用的MSBuild不会构建脚本更改

我注意到,我们在MSBuild脚本中所做的一些更改没有找到。有时他们会通过,有时服务器有几个版本过期。有时候重新启动IIS服务会有诀窍。有时甚至没有这个工作。

有人知道背景中发生了什么吗?是否有一些缓存需要我们为网络应用程序清除?它在哪里?

编辑:为了澄清,我所有的东西都在一台机器上,因为我还处于测试阶段。所以我不认为源代码控制应该是一个问题。我的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服务是最安全的,但我希望不必中断当前正在运行的版本。

回答

1

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

+0

对,Web控制台不应该与构建任何事情,而是通过RMI调用操作。 CruiseControl服务本身就是建筑物。那么服务是否可以缓存?一切都在我的本地机器上,所以Getting Latest不应该是一个问题。 – Jeremy 2009-02-10 05:26:30

相关问题