2013-11-04 61 views
0

我們對TeamCity的工作很新穎。我們有一個構建&部署包裝設置,它使用MSBuild/MSDeploy將更改發送到我們的Web服務器。但是,我們有幾個問題(在同一篇文章中提出幾個問題的道歉)。爲了澄清我們的解決方案看起來像這樣:TeamCity配置

  • 項目文件夾
    • Web應用程序(包括.csproj的文件包括所謂的「媒體」的文件夾 - 這個文件夾是不是SVN)
    • 庫(包括引用的程序)

我們的問題:

  • Libraries文件夾內有一個特定的文件夾,在生成後必須複製到bin目錄中(因爲程序集重定向)。我們一直使用PostBuild事件,但是這在TeamCity中不起作用。
  • SVN中不包含WebApp文件夾中的「media」文件夾。當TeamCity包執行時,它會刪除這個文件夾。我想阻止TeamCity刪除這個文件夾。
  • 當我們運行TeamCity任務時,我們得到了teamcity在同步任務期間嘗試刪除的其中一個文件的ERROR_FILE_IN_USE錯誤。我已閱讀有關使用app_offline.htm文件來解決這個問題 - 但我很不確定。

我要去猜測,其中的一些設置,可以在工作的MSBuild命令行參數 - 我認爲這將是更好的,這些存儲在文件的csproj,而不是僅僅在TeamCity的,如果它是可能的?

在此先感謝 鋁

回答

0

上的信息的幾個問題提供

  1. 你能澄清你的生成後命令不工作是什麼意思?它是失敗還是隻是沒有達到你的期望?

  2. 你是如何設置後期製作命令的?它是否引用特定的文件路徑? TeamCity可以像執行命令行或Visual Studio一樣執行MSBuild。

關於MSDeploy文件夾的問題,您可以用跳躍動作配置MSDeploy,這裏的另一個帖子的鏈接描述如何做到這一點 Prevent MSDeploy (selectively) from deleting folders on target IIS server

因爲MSDeploy試圖部署到一個文件夾中使用通過IIS你也看到了文件鎖定問題。有兩種解決方案 1.在部署前添加teamcity步驟以停止IIS(使用PowerShell)。這會導致停機。 2.部署到其他文件夾,然後切換IIS以指向您的新文件夾。這是一個更好的解決方案,因爲您也有回滾。

更簡單的解決方案是使用Octopus Deploy等部署工具部署應用程序。您可以在http://octopusdeploy.com/

瞭解更多關於Octopus Deploy