Team Services的打包管理

Team Services的打包管理

概述

Package Management (打包管理)是一種擴展,能夠更容易地發現、安裝和發佈包。html

它與Team Services中心如構建功能深度集成,這樣打包管理就能夠與現有工做流無縫對接。web

當產品已成功,組織正在成長,這時就該擴大代碼庫來與之匹配。當在一個單一產品的單一代碼庫中擴展到過去的2-3個團隊時,你可能會發現如下問題:json

  • 團隊如何有效地共享可重用組件?
  • 如何讓特性團隊快速迭代,而不影響其餘團隊的工做?
  • 如何讓團隊自主地以適應他們的速度進行迭代?

這些問題不單單適用於剛剛成長的團隊。若是是一個擁有歷史代碼庫的成熟團隊,可能也會面臨這些相同的問題,由於團隊被要求交付更多的價值,更快交付。不管狀況如何,組件化能夠幫助構建一個代碼庫,它能夠擴展到團隊的規模並匹配當前開發速率。api

在該模塊中,咱們將探索如何經過打包管理實現二進制組件,從而幫助管理和共享外部依賴項、OSS和隔離的共享組件。組件化

前置條件

要完成這個實驗室須要:visual-studio

  • Visual Studio Team Services 帳戶.若是沒有,須要建立一個。
  • Visual Studio 2017 或更高版本
  • 能夠使用Visual Studio team Services Demo Data generator Visual Studio team Services賬戶提供預先定義的項目數據。在本動手實驗請使用My Health Clinic模板。

若是沒有使用VSTS Demo Data Generator,能夠從GitHub倉庫中複製代碼。測試

任務1:安裝打包管理器擴展

1.要開始使用Visual Studio Team Services的打包管理,必須首先從Visual Studio市場安裝打包管理擴展,能夠在這裏找到擴展

這裏寫圖片描述

2.點擊Start Trial(開始試驗)安裝擴展,選擇VSTS賬戶安裝並點擊confirm(確認)

這裏寫圖片描述

已經在賬戶上安裝了擴展。打包訂閱是NuGet打包訂閱,能夠爲本身的依賴項使用,甚至與其餘團隊共享依賴關係。Nuget.org 是一個公共訂閱,能夠爲其餘開發人員發佈包。ui

3.安裝後點擊Proceed to the account。能夠在Build & Release(構建和發佈部分)的Team Projects(團隊項目)中看到Package(打包)菜單選項。

這裏寫圖片描述

任務2:建立訂閱

從團隊項目中刪除未使用的repo,以組織項目的源代碼。url

1.登陸Visual Studio Team Services帳戶。

2.在賬戶概述頁面,選擇團隊項目,也能夠搜索項目。

這裏寫圖片描述

3.如今應該在Build & Release選項卡下看到一個新的菜單選項Package,點擊它。

這裏寫圖片描述

4.單擊+ New feed建立一個新訂閱,設置名稱並單擊create

這裏寫圖片描述

5.單擊Connect to feed,注意Package source URL

這裏寫圖片描述

這裏寫圖片描述

咱們須要這個訂閱的Url,這樣就可以將開發人員鏈接到該訂閱,並配置項目在自動化構建期間使用它。.net

任務3:發佈打包

咱們將從先以前建和配置的打包開始。在當前示例中,建立打包的第一步是定義nuspec文件,它只是一個帶有一些自定義幫助項的簡單類庫。

該文件定義了打包將在清單中顯示的屬性。

07_Demos_PackageManagement 解決方案中,咱們建立了一個帶有nuspec文件定義的類庫. 關於如何建立和使用該文件的說明能夠在NuGet.org文檔中找到.

打包版本的控制也很重要,這樣開發人員才知道包的哪一個版本是最新的、上一個版本,以及這兩個版本之間的區別。

咱們將以自動構建的方式將包發佈到訂閱中。所以,將建立一個新的構建定義(關於更多細節,請查看持續集成實驗。

1.咱們將從Visual Studio構建模板開始。經過建立新的構建定義,選擇Visual Studio build模板。

這裏寫圖片描述

2.刪除Publish symbols(發佈符號)、Copy files(複製文件)Publish Artifact(發佈工件)任務。並配置Nuget RestoreBuild(構建)步驟來構建咱們的Nuget打包解決方案。

這裏寫圖片描述

3.從Package部分添加NuGet Packager任務。

這裏寫圖片描述

4.從Package部分添加Nuget Publisher任務。

這裏寫圖片描述

5.配置Nuget Packager任務。爲此,將選擇包含NuGet打包項目的csproj文件。這必須與nuspec文件名相同,可是使用csproj擴展。

這裏寫圖片描述

這很是關鍵:此時指定csproj文件,並與csproj文件nuspec文件名稱相同,這樣該打包纔會正確生成。

6.在Nuget publisher任務中,須要指定咱們想要發佈目標的訂閱。選擇內部Feed type併爲內部訂閱引入URL(以前提到的URL)。完成構建定義後Save and Queue

這裏寫圖片描述

另外,Path/Pattern to nupkg該默認的過濾器只包含剛剛構建的包,將排除引用包含: * /packages/* /.nupkg的包,以及包含-:**/.symbols.nupkg的包,目前不支持。

7.構建完成後,能夠看到包已經發布到訂閱並準備好被使用。進入Packages選項卡並檢查。

這裏寫圖片描述

任務4:配置Visual Studio

1.打開Visual Studio進入Tools | NuGet Package Manager |Package Manager Settings

這裏寫圖片描述

須要配置Visual Studio以使打包管理器可供開發人員使用。

2.打開Package Sources

這裏寫圖片描述
在此屏幕中,將管理本身的包訂閱,以便在項目中添加NuGet包時可用。

3.單擊+圖標,一行新的打包源代碼已經添加了默認值。將Name更改成所需的名稱(即「HealthClinic Feed」),並在URL中粘貼咱們以前提到的訂閱的URL值。單擊Ok

這裏寫圖片描述
咱們只是將新訂閱添加到Visual Studio中。爲了獲取到包,團隊的全部成員必須在本身的Visual Studio中執行相同的操做。

4.建立一個空項目,或者打開一個現有項目,右鍵單擊,選擇Manage Nuget Packages,進入Browse,在package source選擇器中,選擇最近添加的訂閱。應該可以找到最近添加的包。

這裏寫圖片描述
全部的團隊成員,都要在Visual Studio中配置訂閱,以後可以訪問該訂閱並將包安裝到他們的項目中,這樣就能夠更好地在項目中重用公共庫的代碼。

任務5:打包從構建到使用

當建立構建時,第一步是Nuget package restore,可是默認狀況下,只會在nuget.org訂閱中查找包。因此須要經過nuget.config文件來講明Team Build

1.在解決方案同層級中,建立一個名爲nuget.config的空文件。將建立Team Build並粘貼如下代碼:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
 <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
 <add key="HealthClinic Repo" value="YOUR_PACKAGE_URL" />
</packageSources>
</configuration>

須要第一個打包源代碼來表示Nuget公開Nuget包的原始Nuget訂閱。第二個是自定義訂閱的url。

2.將文件提交到存儲庫。

3.如今,在團隊構建中,使用的是內部Nuget打包的項目,在包恢復步驟,指向剛剛添加到存儲庫中的配置文件nuget.config

這裏寫圖片描述

4.在構建期間,能夠看到控制檯的輸出,同時構建引用內部Nuget訂閱的項目。

Feeds used:
C:\Users\buildguest\AppData\Local\NuGet\Cache
https://api.nuget.org/v3/index.json
YOUR_PACKAGE_URL

動手實驗

類別 文章名稱
概述 Visual Studio Team Services 動手實驗
計劃 使用Visual Studio Team Services敏捷規劃和項目組合管理(一)使用團隊、區域和迭代
使用Visual Studio Team Services敏捷規劃和項目組合管理(二)VSTS中的工做項
使用Visual Studio Team Services敏捷規劃和項目組合管理(三)使用Kanban板
使用Visual Studio Team Services敏捷規劃和項目組合管理(四)衝刺計劃和任務板
使用Visual Studio Team Services敏捷規劃和項目組合管理(五)組合管理
使用Visual Studio Team Services敏捷規劃和項目組合管理(六)——VSTS儀表盤的使用
使用Visual Studio Team Services敏捷規劃和項目組合管理(七)——流程定製
Microsoft Teams 集成 (協做, 溝通 和 行爲)
使用VSTS的Git進行版本控制(一)——複製現有倉庫)
使用VSTS的Git進行版本控制(二)——提交保存工做)
使用VSTS的Git進行版本控制(三)——評審歷史記錄)
使用VSTS的Git進行版本控制(四)——在Visual Studio中管理分支)
使用VSTS的Git進行版本控制(五)——從Team Services Portal管理分支)
使用VSTS的Git進行版本控制(六)——拉取請求)
使用VSTS的Git進行版本控制(七)——管理倉庫)
使用Visual Studio Team Services持續集成(一)——構建ASP.NET Core)
使用Visual Studio Team Services持續集成(二)——爲構建定義屬性)
使用Visual Studio Team Services持續集成(三)——使用工件)
使用Visual Studio Team Services持續集成(四)——使用構建運行測試)
相關資料 Visual Studio Team Services Demo Generator簡介
參考文章 Package Management in Team Services
相關文章
相關標籤/搜索