jiangyongtao

Windows Phone 世外涛缘

导航

Team Services的打包管理

Posted on 2018-03-15 00:28  世外涛缘  阅读(562)  评论(0编辑  收藏  举报

Team Services的打包管理

概述

Package Management (打包管理)是一种扩展,可以更容易地发现、安装和发布包。

它与Team Services中心如构建功能深度集成,这样打包管理就可以与现有工作流无缝对接。

当产品已成功,组织正在成长,这时就该扩大代码库来与之匹配。当在一个单一产品的单一代码库中扩展到过去的2-3个团队时,你可能会发现以下问题:

  • 团队如何有效地共享可重用组件?
  • 如何让特性团队快速迭代,而不影响其他团队的工作?
  • 如何让团队自主地以适应他们的速度进行迭代?

这些问题不仅仅适用于刚刚成长的团队。如果是一个拥有历史代码库的成熟团队,可能也会面临这些相同的问题,因为团队被要求交付更多的价值,更快交付。无论情况如何,组件化可以帮助构建一个代码库,它可以扩展到团队的规模并匹配当前开发速率。

在该模块中,我们将探索如何通过打包管理实现二进制组件,从而帮助管理和共享外部依赖项、OSS和隔离的共享组件。

前置条件

要完成这个实验室需要:

  • 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 是一个公共订阅,可以为其他开发人员发布包。

3.安装后点击Proceed to the account。可以在Build & Release(构建和发布部分)的Team Projects(团队项目)中看到Package(打包)菜单选项。

这里写图片描述

任务2:创建订阅

从团队项目中删除未使用的repo,以组织项目的源代码。

1.登录Visual Studio Team Services账户。

2.在帐户概述页面,选择团队项目,也可以搜索项目。

这里写图片描述

3.现在应该在Build & Release选项卡下看到一个新的菜单选项Package,点击它。

这里写图片描述

4.单击+ New feed创建一个新订阅,设置名称并单击create

这里写图片描述

5.单击Connect to feed,注意Package source URL

这里写图片描述

这里写图片描述

我们需要这个订阅的Url,这样就能够将开发人员连接到该订阅,并配置项目在自动化构建期间使用它。

任务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