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
相关文章
相关标签/搜索