TeamCity : .NET Core 外掛程式

來源:互聯網
上載者:User

標籤:color   測試   重啟   load   第一個   內容   dev   包含   完整   

筆者在《TeamCity : 配置 Build 過程》一文中提到 "TeamCity 內建支援幾乎所有的 build 類型"。在當今這個軟體語言和各種架構飛速發展的時代,要想支援所有的 build 類型顯然是不可能的。比如 TeamCity 就沒有內建對 .NET Core build 類型的支援,所以我們在《TeamCity : 配置第一個工程》一文中使用了 Command Line 類型(command line 類型可以搞定一切!),然後在指令碼裏手動調用了編譯命令:

dotnet restoredotnet build

最近,TeamCity 官方通過外掛程式支援了 .NET Core build(Build, test and deploy .NET Core projects with TeamCity)。既然可以用更加優雅的方式來編譯 .NET Core 程式了就讓我們一起試試吧!

安裝外掛程式

請從 .NET Core Support 下載外掛程式。

以管理員權限進入 Plugins List 頁面,點擊上方的 "Upload plugin zip":

然後選擇上傳已下載的外掛程式:

上傳完成後,檔案會被放在伺服器上的 plugins 目錄下:

接下來需要重啟 TeamCity 服務,然後就能看到新安裝的外掛程式了:

現在我們再去建立一個 build 步驟,就可以選擇 Runner type 為 ".NET Core (dotnet)" 了:

.NET Core 外掛程式支援的命令有:build, pack, publish, restore, test。下面我們將詳細介紹如何配置這些不同的命令類型。

Restore

下載項目依賴的包。這個命令有很多的參數,比如您可以指定為哪個項目下載包,也可以指定從哪個源進行下載或者是把下載到的包放在哪個路徑下。如果 UI 中沒有您要的設定,您還可以指定一個命令列參數:

通過命令列參數您就可以無所不能了!

Build

編譯項目,允許您指定 framework,runtime 等資訊。當然也可以指定編譯完成後的輸出目錄,還有萬能的命令列參數!

Test

使用 xUnit framework 能夠輕鬆的在 TeamCity 中整合您的 .NET Core 單元測試。要運行項目中的單元測試,參數的設定和其它命令差不多,下面是單元測試的結果:

Pack

要想把項目發布到 NuGet,首先要產生 NuGet 包。直接使用 Pack 命令就可以了,它會把項目打包成帶有 nupkg 尾碼的包:

Publish

Publish 命令把應用程式及其所有依賴項打包到檔案夾,準備進行發布。它會編譯應用程式,讀取 project.json 檔案中指定的所有依賴項並將產生的檔案集發布到目錄中。
根據可移植應用的類型,產生的目錄包含以下內容:
1.    可移植應用程式 – 應用程式的中繼語言(IL) 代碼和應用程式的所有託管依賴項。
2.    獨立應用程式 – 除上述內容外,還包括目標平台的完整運行時。
需要注意的是一定要為 publish 指定 Framework 和 Runtime:

TeamCity : .NET Core 外掛程式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.