2016-06-28 148 views
0

我目前使用Visual Studio Team Services (was VS Online)來版本控制我的項目。當我想將我的項目部署到我的VPS時,我使用Visual Studio發佈將文件存儲在我的硬盤上,然後使用FTP客戶端將文件發送到我的VPS。使用Visual Studio Team Services構建和發佈ASP.NET網站到VPS Windows Server 2012 R2

但現在我正在查看Visual Studio Team Services中的構建和發佈函數。但我不完全明白這一切。

問題:

  • 什麼是構建的目的是什麼?

我創建使用Visual Studio模板的新標準構建定義和使用的Host代理池。

當我運行構建時,我可以看到它使用上次提交作爲參考創建了一個新版本。但是,它在主機代理的後端做了什麼?

這個新創建的構建文件存儲在哪裏?在日誌中我看到Copy Files to: $(build.artifactstagingdirectory)但這是哪裏?

  • 該版本的目的是什麼?

我已經使用空模板創建了一個新的發佈計劃,因爲我沒有Azure,我使用另一家公司,我有一個VPS正在運行。

然後我添加了3個環境,分別叫做Development,StagingProduction

所有人都使用Host代理,但我認爲在這裏我需要調整這一點,因爲如果我明白了,我現在可以將我的VPS分配給我的Production環境嗎?

有人已經使用Visual Studio Team Services和一個在Windows Server 2012上運行的VPS來完成此操作嗎?

是否有關於此的視頻或文檔可用,因爲它很難理解部署Web項目版本的正確步驟。

回答

0

一般來說,「構建」側重於集成和構建代碼更改並運行一些基本的單元測試。 「發佈」用於將「構建」的輸出部署到您的環境中,以便您可以運行一些未來的測試/驗證,並最終將輸出部署到生產環境中供客戶使用。請參閱此鏈接以供參考:What is the difference between build and release engineering, DevOps and site reliability engineering?

當您在未指定任何源版本的情況下啓動構建時,它將獲取最新版本的代碼,然後構建代碼。在構建過程中,所有文件都放置在構建代理的工作文件夾中。 $(build.artifactstagingdirectory)是一個預定義變量,指向構建代理工作文件夾中的路徑。我們通常將構建輸出複製到此路徑,以便我們可以在以下任務中輕鬆訪問輸出。例如,使用「Publish Artifact」任務將$(build.artifactstagingdirectory)文件夾中的輸出文件發佈到服務器或文件共享中,然後團隊成員可以從服務器或文件共享中獲得此版本。

在發行版中,您可以將發行版鏈接到構建定義。當發佈開始時,它會獲取構建的最新工件並將其部署到您的環境中。

代理程序是用於執行構建/發佈定義中的任務的機器。 Hosted agent由Azure管理,您也可以deploy your own build agent。因此,如果您的VPS可以由Hosted代理訪問,則無需更改「Production」環境的代理設置。由於您以前使用FTP將文件上傳到VPS,因此您仍然可以通過在發行版定義中添加FTP Uploader任務來使用此方法發佈文件。

欲瞭解更多信息,請參閱BuildRelease Management瞭解詳情。

+0

感謝這個英特爾。你說我可以使用「Publish Artifact」將構建放到服務器或文件共享中。但是,如果我使用內置的Host代理,如何訪問位於變量build.artifactstaging目錄下的輸出目錄中的文件? – Mivaweb

+0

好吧,我發現下載包含構建定義下的所有文件,然後工件的下拉選項。 – Mivaweb

+0

所以這個版本創建了一個我現在可以正確釋放的drop zip包?然後在我的Production環境中的發佈模式下,我可以在我的VPS上安裝此軟件包。但是我需要哪些任務以及在哪裏設置VPS設置,以便Host代理可以訪問我的VPS? – Mivaweb

相關問題