實戰dailybuild-cc.net的配置
CoolBug的DailyBuild全攻略http://www.cnblogs.com/coolbug/articles/27735.html 拿到手之後,按照給出的方法做來,其實還是要費一些時間的。不過基本問題不大。本文主要內容就cc.net的環境配置作一番說明,趁熱打鐵,因為我剛剛才配置完成哦。
首先,從sourceforge下載最新的cc.net,nant,nantcontrb.解包並將其中的程式複製到一個單獨的檔案夾中,我這裡是d:\dailybuild,其中放cc.net和nant。並且把nantcontrb的bin中的內容全部複製到nant的bin裡面。
其次,建立自己的工作目錄,我的dailybuild目錄是e:\temp\dailybuild。因為每日構建的內容並不要做其他事情,放到temp目錄中就可以了。
第三,按照coolbug的文章配置參數。直到可以構建成功。
第四,建立cc.net的Web服務。cc.net其中有五個部分,分別在cc.net的五個目錄中。其中server是cc.net最主要的服務,coolbug文章就指導我們配置的這個,但是server還有另外一個馬甲,就是webservice,提供通過IIS提供remoting方式的介面。另外一個是狀態報表,在web目錄中。剩下兩個功能比較類似,都是狀態報表和構建控制,cctray是運行在原生監控程式,webdashboard支援瀏覽器來報告和控制構建狀態。
要成功配置cc.net的其它幾個服務,機器上首先要啟動IIS,步驟如下:
1。移動ccnet.config的位置。這個檔案並不一定要放到cc.net\server下,通過修改ccservice.exe.config中的內容就可以。
<appSettings>
<add key="ccnet.config" value="E:\temp\dailybuild\ccnet.config"/>
<add key="remoting" value="on"/>
</appSettings>
這樣的目的是把所有的配置都放到一起去,免得要修改的時候忘記了。
2。修改ccnet.config檔案中的日誌存放位置,最好是自己建立一個新的存放目錄,我把這個目錄直接建立在server目錄下。
<xmllogger>
<logDir>D:\dailybuild\cc.net\server\log</logDir>
</xmllogger>
再設定publisher中的email內容,把每次構建的狀態功過email發給我。
3。配置web功能。在web目錄上開啟internet共用(也可以在IIS管理器中直接來做)。然後修改目錄中的設定檔Web.config,修改如下:
<appSettings>
<add key="logDir" value="D:\dailybuild\cc.net\server\log" />
<add key="ServerLogFilePath" value="" />
<add key="ServerLogFileLines" value="50" />
</appSettings>
其中logDir就是前一步的logDir位置,ServerLogFilePath可以不用填,因為如果採用VSS做版本管理的話,其中會泄露VSS的登陸使用者名稱和密碼,還有代碼路徑。這樣就不太好了。我直接把server log查看的功能禁止掉了,方法很簡單,就是把同一個Web.config中的plugin修改成這個樣子,然後把對應的ServerLog.aspx改名即可
<!-- plugin linkText="server log" linkUrl="ServerLog.aspx" / -->
我在配置的時候,IIS報告說compile.xsl有問題。結果把web/xsl/compile.xsl中的內容作如下的修改就可以了
<xsl:template match="message[((contains(text(), ' error') and not (contains(text(), '0 error')))) or ((contains(text(), ' warning') and not (contains(text(), '0 warning'))))]">
<pre class="compile-error-data"><xsl:value-of select="text()"/></pre>
</xsl:template>
4。配置webdashboard功能。直接在webdashboard目錄上開啟internet共用。其他不用配置,如果你決定把cc.net的功能分散的話,可以看一下Web.config中的projectURLs配置項。
5。配置webservice。我沒有配置它,也沒有共用。如果有人要用的話,參考msdn中的remoting服務配置方法就可以了。
另外,我嘗試了一下把cc.net的windows服務功能,但是沒有安裝起來,安裝過程中會出現NullReferenceException。它的網站上說好像是這個功能還不穩定。我的嘗試過程如下:開啟程式組中Visual Studio.net 2003附帶的工具“Visual Studio .NET 2003 命令提示”,在其中切換到cc.net\server目錄,運行installutil ccservice.exe,提示啟動服務所需的使用者帳號,我輸入超級使用者,然後出現異常,失敗!
因為我不喜歡一直放一個黑視窗在介面上,所以我在控制台的計劃任務中建立了一個計劃,定時每天下午5點運行cc.net\server\startCCNet.bat,然後設定運行超過30分鐘則退出。
關於nant的配置問題網上已經很多了,上手也很快,這裡就不說了。不過要注意nant現在可以直接用solution命令編譯.sln了,非常好!
用nant的時候會有一個問題,就是.net framework版本的問題,大家在nant.exe.config修改一下配置,結果如下:
<platform name="win32" default="net-1.1"> <!-- default="auto" -->
否則如果你裝了.net2.0,solution會調用.net2.0來編譯你的程式。
另外,使用msbuild的同學可以看一下這個文章,學習如何用msbuild和cc.net結合
http://blogs.msdn.com/mswanson/archive/2004/10/05/238423.aspx