Package Management (打包管理)是一種擴展,能夠更容易地發現、安裝和發佈包。html
它與Team Services中心如構建功能深度集成,這樣打包管理就能夠與現有工做流無縫對接。web
當產品已成功,組織正在成長,這時就該擴大代碼庫來與之匹配。當在一個單一產品的單一代碼庫中擴展到過去的2-3個團隊時,你可能會發現如下問題:json
這些問題不單單適用於剛剛成長的團隊。若是是一個擁有歷史代碼庫的成熟團隊,可能也會面臨這些相同的問題,由於團隊被要求交付更多的價值,更快交付。不管狀況如何,組件化能夠幫助構建一個代碼庫,它能夠擴展到團隊的規模並匹配當前開發速率。api
在該模塊中,咱們將探索如何經過打包管理實現二進制組件,從而幫助管理和共享外部依賴項、OSS和隔離的共享組件。組件化
要完成這個實驗室須要:visual-studio
若是沒有使用VSTS Demo Data Generator,能夠從GitHub倉庫中複製代碼。測試
已經在賬戶上安裝了擴展。打包訂閱是NuGet打包訂閱,能夠爲本身的依賴項使用,甚至與其餘團隊共享依賴關係。Nuget.org 是一個公共訂閱,能夠爲其餘開發人員發佈包。ui
從團隊項目中刪除未使用的repo,以組織項目的源代碼。url
咱們須要這個訂閱的Url,這樣就可以將開發人員鏈接到該訂閱,並配置項目在自動化構建期間使用它。.net
咱們將從先以前建和配置的打包開始。在當前示例中,建立打包的第一步是定義nuspec文件,它只是一個帶有一些自定義幫助項的簡單類庫。
該文件定義了打包將在清單中顯示的屬性。
在07_Demos_PackageManagement 解決方案中,咱們建立了一個帶有nuspec文件定義的類庫. 關於如何建立和使用該文件的說明能夠在NuGet.org文檔中找到.
打包版本的控制也很重要,這樣開發人員才知道包的哪一個版本是最新的、上一個版本,以及這兩個版本之間的區別。
咱們將以自動構建的方式將包發佈到訂閱中。所以,將建立一個新的構建定義(關於更多細節,請查看持續集成實驗。
這很是關鍵:此時指定csproj文件,並與csproj文件nuspec文件名稱相同,這樣該打包纔會正確生成。
另外,Path/Pattern to nupkg該默認的過濾器只包含剛剛構建的包,將排除引用包含: * /packages/* /.nupkg的包,以及包含-:**/.symbols.nupkg的包,目前不支持。
須要配置Visual Studio以使打包管理器可供開發人員使用。
在此屏幕中,將管理本身的包訂閱,以便在項目中添加NuGet包時可用。
咱們只是將新訂閱添加到Visual Studio中。爲了獲取到包,團隊的全部成員必須在本身的Visual Studio中執行相同的操做。
全部的團隊成員,都要在Visual Studio中配置訂閱,以後可以訪問該訂閱並將包安裝到他們的項目中,這樣就能夠更好地在項目中重用公共庫的代碼。
當建立構建時,第一步是Nuget package restore,可是默認狀況下,只會在nuget.org訂閱中查找包。因此須要經過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。
Feeds used: C:\Users\buildguest\AppData\Local\NuGet\Cache https://api.nuget.org/v3/index.json YOUR_PACKAGE_URL