Team Services的打包管理

时光怂恿深爱的人放手 提交于 2020-12-17 00:44:16

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 Restore和**Build(构建)**步骤来构建我们的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 |

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!