2010-07-15 71 views
5

好吧,我已經搜索了幾天,仍然沒有找到我認爲是這個問題的優雅解決方案。在teamcity中使用msbuild部署到遠程服務器

這是我想要發生的事情。

  • 我想的TeamCity建立我的代碼
  • 然後對其進行測試
  • 它,然後部署到遠程服務器。

前兩個很容易,但沒有人似乎有一個很好的部署選項。我已經設置了支持Web部署的服務器(以前稱爲msdeploy?),並且可以從本地計算機將其發佈到遠程服務器。

我希望teamcity能夠在成功構建和測試後允許遠程發佈網站。

請告訴我有人有問題的解決方案!我很高興這幾乎是星期五,因爲我近在眼前,需要酒精來幫助我。

在此先感謝。

回答

1

我也在處理同樣的問題。目前我有兩個難看的解決方案:

1)使用固定的工作目錄文件夾。然後代碼總是被編譯到同一個地方。將bin \ RELEASE文件夾中的XCOPY/FTP執行到目標服務器或文件夾。

2)編寫一個腳本,使用一些大版本號(999)搜索工件文件夾,然後檢查每個較小的版本號,直到找到具有該版本號的文件夾。如果您通過curl & artifacts網頁獲取您的工件,也可以通過URL完成此操作。

3)在類似的網站上發佈問題,直到找到一些msbuild屬性,環境變量或其他類似的設備來獲取工件URL或文件系統路徑(理解teamcity支持在服務器場上構建,因此文件系統路徑可能需要包含一個UNC名稱以確定它來自哪裏)

+0

那你最終使用? – 2011-10-26 06:06:45

+1

我使用#1,一個固定的工作目錄文件夾。如果我創建了一個分支,我創建一個新的固定工作目錄文件夾,然後通過分支位置的後期構建部署腳本進行更新。 #3將是最優雅的,但是發現引用msbuild,teamcity和OS環境變量的正確方法,就像從msbuild到batch到powershell一樣,這仍然是我不擅長的。 – MatthewMartin 2011-10-26 14:44:34

2

我們做了一些非常相似的事情,但將最後一項任務分離到它自己的構建中,該構建計劃將最近發佈的成功構建部署到每晚在開發人員提交時停止網站上下移動。我們沒有使用msdeploy但你會發現下面的鏈接有用:

Automated deployments with TeamCity, Deployment projects & SVN

Web Deployment Made Awesome: If You're Using XCopy, You're Doing It Wrong

Web Packaging: Creating web packages using MSBuild

相關問題