9

我正在尋找一些建議來自動執行項目構建和部署。什麼是用於asp.net的良好構建自動化和部署過程?

我們當前的開發設置使用ASP.NET,SVN,CCNET和MSBuild腳本開發dev服務器。我正在考慮切換到克魯斯而不是CCNET,雖然我不確定這是否給了我任何額外的東西,我還沒有。

我想自動化的是從自動構建完成到用新更改更新現場的過程。網站更新可以包括基本網站更新以及客戶端更新,這些更新可以是代碼和/或數據庫更改,因此過程需要足夠靈活以便能夠處理這些情況。

我的靈感來源之一來自this video,以及每個月花費更新的無數時間。

+0

6年後更新; [應用程序發佈自動化](https://en.wikipedia.org/wiki/Application_release_automation)工具是專門爲此設計的。 BuildMaster是其中的一個工具,並且[本教程](http://inedo.com/support/tutorials/building-and-deploying-a-net-web-application-using-buildmaster)概述了所提及的過程。 – 2016-07-19 14:58:28

回答

4

對於較小或個人項目,我會推薦使用類似免費(和優秀)的JetBrains TeamCity。單元測試自動化,持續集成以及構建後發生的規則(包括將它移動到不同的位置)。

對於更大的團隊,我實際上已經發現了一些自定義構建自動化的MSBuild任務的形式和RoboCopy的效果最好。這種在環境之間手動升級構建以及使用MSBuild RoboCopy自動執行此過程的某些部分的良好組合可以在環境之間創建乾淨的中斷(很少有'oops我並不是想要推動那裏出現錯誤)。它還讓我們在推廣前進行質量檢查評估。

更新2014年7月31日:

我用custom TFS build templates成功。它們有點複雜,但你可以用它們做很多很酷的事情。

對於在GitHub上託管的開源項目(如NuGet庫),我認爲你不能擊敗AppVeyor。我有幾個項目,如Mailchimp.NET,它們有完整的構建和NuGet部署自動化。

+1

我現在已經從CruiseControl.NET升級到TeamCity並且很喜歡它。即使使用自定義的MSBuild腳本,這也更容易使用。 – 2011-04-05 19:10:49

0

我在過去曾使用過Nant,對於類似的任務有很多運氣。您可以使用自動構建來啓動它。 (http://nant.sourceforge.net/

如果你想要的東西更全面,你可以檢查出威克斯(http://wix.sourceforge.net/

現在你真的確信一切的autmatic建設拉開序幕要更新直播的網站?或者你的意思是你使用你的cc工具啓動了一個構建,然後它生成一個構建去上線?

如果有人在文件的新版本中籤入,我不願意進行實時網站更新。

您的數據庫更新可能是最具挑戰性的方面。但是,只要檢查數據庫更新的內容是更改腳本,它就不會壞。

+0

我們現在有2種構建類型。一個是開發版本,另一個是版本。開發版本每隔xx分鐘執行一次代碼檢查,然後運行單元測試等,而發佈版本只有在我們啓動它時才執行,並且大部分開發版本都是在發佈模式下執行的,並且將其標記爲版本SVN。 – 2010-02-19 23:31:35

0

聽起來像部署代碼更改的兩個主要功能是:1.複製文件和2.執行DB腳本更改。如果你看看使用MsBuild Community Tasks,有很多方便的構建任務可以幫助你。 SqlExecute和RoboCopy聽起來就像是你需要使用的所有東西。這將需要你修改你的項目文件來擴展它們的構建行爲,但是一旦完成,你就能夠「腳本化」正在完成的手動部分。