2009-05-02 63 views
1

我第一次配置CruiseControl.net服務器。我的團隊已經使用NAnt構建腳本,因此我們只需將腳本指向服務器,讓NAnt完成所有工作。CruiseControl.Net和NAnt構建問題

正如你所看到的,這是很簡單的:

<project name="ChannelIP"> 
    <tasks> 
     <nant> 
      <executable>C:\Program Files\nant-0.86-beta1\bin\nant.exe</executable> 
      <baseDirectory>D:\mypath</baseDirectory> 
      <buildFile>D:\mypath\myNAnt.build</buildFile> 
      <targetList> 
       <target>build</target> 
      </targetList> 
     </nant> 
    </tasks> 
</project> 

的問題是,當我在CC運行它,我得到以下錯誤:

Function call failed. Expression: ${framework::get-framework-directory('net-3.5')}/msbuild.exe

  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

Microsoft .NET Framework 3.5 (net-3.5) is not installed, or not correctly configured. Object reference not set to an instance of an object.

我這樣做,事實上,使用$ {framework :: get-framework-directory('net-3.5')}變量來獲取msbuild.exe的路徑;但是,此代碼之前從未失敗過。我甚至可以使用CC運行的用戶帳戶將RDP引入服務器,並直接運行NAnt構建文件,它工作得很好。

爲什麼這個很好的文件在CC運行時會失敗。

注意 -CC的是,我通常運行從

回答

1

這聽起來像一個NAnt問題,它和.NET 3.5有一些問題。你正在使用哪種版本的NAnt?

另外,你見過Using 0.86 beta 1 for .NET 3.5?這個人有NAnt拋出的錯誤信息。建議的解決方案是使用最新的每晚構建。

+0

使用最新的每晚構建做了訣竅。真正的問題是我在ccnet.config文件中將路徑硬編碼爲NAnt,並忘記將其指向最新版本。感謝大家的幫助! – 2009-05-04 17:06:11

2

的CC服務可能不是一個帳戶具有相應權限運行構建腳本在同一臺機器上運行。您是否嘗試過使用命令行(它將以登錄用戶身份運行)運行CC以查看是否存在相同的問題?

+0

好的建議,其實這是我以前遇到的一個問題,但已經找到並修復了。謝謝你的想法。 – 2009-05-04 17:06:53