2009-02-06 79 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

相關問題