2011-05-12 47 views
1

我爲ASP.Net項目設置了Cruise Control.Net 1.6.7981.1。它目前正在用MSBuild正確構建。該MSBuild的配置文件的設置如下如何使用巡航控制網絡編譯aspx頁面

<msbuild> 
    <executable>c:\Windows\Microsoft.Net\Framework\v3.5\MSBuild.exe</executable> 
    <workingDirectory>C:\MyProject\trunk</workingDirectory> 
    <projectFile>MyProject.sln</projectFile> 
    <buildArgs>/t:Rebuild /p:Configuration=Release /v:m</buildArgs> 
    <targets>Clean;Build</targets> 
    <timeout>1200</timeout> 
</msbuild> 

我認爲,由於我的配置將發佈的aspx頁面被編譯成構建的一部分。但是,如果我從要求運行構建的頁面中刪除asp:ScriptManager標記仍然成功,即使頁面加載時也會導致以下錯誤。

帶ID「MyControl」 的控件需要頁面上的ScriptManager。 ScriptManager必須出現在需要它的任何控件的 之前。甚至當我

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v/-c -errorstack -p C:\MyProject\trunk\MyProject 

手動的頁面仍然建立

沒有任何錯誤。

我真的很想巡航控制失敗的建設,如果任何錯誤已經使它建設。有誰知道如何做到這一點?

+3

這聽起來像是一個ASP.NET運行時錯誤而不是編譯時錯誤 - 你確定你可以捕獲它嗎?您可以讓CruiseControl使用Selenium在您部署的網站上運行鏈接蜘蛛測試 - 我們已將其包含在我們的單元測試中,因此CC將nunit作爲構建的一部分,並且nunit將運行測試。 – Rup 2011-05-12 15:50:40

+0

@Rup它是一個運行時錯誤,但我會認爲它應該是一個編譯時錯誤。 Selenium是否處理需要登錄的頁面? – TheLukeMcCarthy 2011-05-12 15:53:37

+0

是的,Selenium會自動瀏覽真實的瀏覽器。 Firefox - 所以你只需要編寫腳本來首先填寫登錄表單。 (這確實意味着你需要在CI服務器上進行交互式會話,以便瀏覽器可以運行桌面。) – Rup 2011-05-12 15:55:33

回答

0

我同意這個錯誤是運行時。該控件很可能會動態搜索腳本管理器的實例,並在找不到它時拋出異常。編譯器只能解決引用錯誤或缺失,或者調用的方法不存在的問題。