Asp.net-Mvc

使用 TFS 2015 Build 建構和部署 Web 應用程序

  • September 19, 2017

我們剛剛在本地安裝了 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 轉換,以確保針對我們要部署到的任何環境更新所有內容。它適用於我們所有的網路項目。

引用自:https://stackoverflow.com/questions/35351695