使用 TFS 2015 Build 建構和部署 Web 應用程序
我們剛剛在本地安裝了 TFS 2015(更新 1),並正在嘗試使用新的 TFS 建構系統創建一個持續集成/建構系統。建構工作正常,給了我綠燈,但是當我查看預設建構時,它只建構了 bin 目錄中的二進製文件,似乎沒有簡單的方法將應用程序本地部署到本地伺服器.
文件系統副本和 powershell 腳本有兩個部署選項,使用它們將文件複製到新伺服器當然很容易,但由於建構只建構二進製文件,我沒有看到工具為此收集 Web 工件(cshtml、圖像、腳本、css 等)。
經過詳盡的Google搜尋,我只找到了一篇討論這個的文章:
<http://www.deliveron.com/blog/building-websites-team-foundation-build-2015/>
但是,這使用了 WebDeploy 並創建了一個相當混亂的部署包。
如何以最簡單的方式將站點(標準 MVC Web 應用程序,實際上我的測試使用由創建項目嚮導創建的預設樣板站點)連同工件一起部署到本地伺服器?我不想在伺服器上安裝 WebDeploy,而寧願使用 PowerShell 或其他東西來部署最終的工件。
該建構只是標準的 Visual Studio 建構模板,有 4 個步驟(建構、測試、索引和發布、發布建構工件)。
我們使用“Visual Studio Build”步驟,作為 MSBuild 的參數,我們使用以下行:
/p:DeployOnBuild=True /p:PublishProfile=$(DeploymentConfiguration)在變數選項卡頁面上,必須配置 DeploymentConfiguration。它必須是發布配置文件的名稱(pubxml 文件的文件名)。如果文件名是 Build.pubxml,則發布配置文件是 Build。
例如:
/p:DeployOnBuild=True /p:PublishProfile=Build
我想補充一點,Ben Day 有一篇出色的文章,幫助我們快速打包,然後通過 Release Manager 發佈到多個環境。
他的 msbuild 參數如下所示:
/p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=$(build.artifactstagingdirectory)\for-deploy\website這與接受的答案之間的區別在於,此參數集將所有內容暫存在工件文件夾中,然後將其保存為建構的一部分。然後我們可以重複部署完全相同的程式碼。
我們在 for-deploy 文件夾旁邊擷取 web.env.config 文件,然後在發布過程中使用 xdt 轉換,以確保針對我們要部署到的任何環境更新所有內容。它適用於我們所有的網路項目。