1、建立Team Build Type,“Project1Build”
2、建立批處理,"C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/TfsBuild.exe" start Server1 "Project1" "Project1Build"。利用Windows內建的任務計劃,執行批處理。Server1是伺服器,Project1是項目,Project1Build是構建類型。
3、自己寫一個郵件通知群組件,通知團隊成員編譯結果,將通知命令放入到上面的批處理中。
需要用到下面的兩個WebService
http://Server1:8080/Build/v1.0/BuildController.asmx
http://Server1:8080/Build/v1.0/BuildStore.asmx
下面的代碼是擷取BuildData資訊。
BuildStore bi = new BuildStore();
bi.Credentials = System.Net.CredentialCache.DefaultCredentials;
BuildData[] builds = null;
try
...{
builds = bi.GetListOfBuilds(_teamProject, _buildType);
}
catch (Exception e)
...{
Log.LogError("Exception when calling Webservice: " + bi.Url, e.ToString());
throw;
}
if (builds != null)
...{
foreach (BuildData bd in builds)
...{
if (bd.BuildQuality == "Unexamined")
...{
ClientBuildData data = new ClientBuildData();
data.BuildUri = bd.BuildUri;
data.DropLocation = bd.DropLocation;
data.BuildNumber = bd.BuildNumber;
data.BuildStatus = bd.BuildStatus;
data.StartTime = bd.StartTime;
this.buildDatas.Add(data);
}
}
}
return true;
發送郵件通知的代碼我就不貼了,到處都是。
4、做安裝盤也可以寫成批處理,無非是copy編譯好的dll到安裝目錄。還有一點就是可能需要從VSS中擷取Sql等。可以通過:tf get "//Server1/Sql" /force /recursive ,上MSDN尋找一下VSS的tf命令吧。
做完這些事情之後,每天上班,就會看到半夜build的情況,如果有問題,馬上就能發現。當需要做安裝盤的時候,只是選擇編譯成功的build,執行一下批處理即可。如果寫了UnitTest,作用更大。實現Daily build,目的就是讓開發過程中的問題及時暴露、及時修複。另外一點就是提高做build的效率。