Package Management (打包管理)是一种扩展,可以更容易地发现、安装和发布包。
它与Team Services中心如构建功能深度集成,这样打包管理就可以与现有工作流无缝对接。
当产品已成功,组织正在成长,这时就该扩大代码库来与之匹配。当在一个单一产品的单一代码库中扩展到过去的2-3个团队时,你可能会发现以下问题:
这些问题不仅仅适用于刚刚成长的团队。如果是一个拥有历史代码库的成熟团队,可能也会面临这些相同的问题,因为团队被要求交付更多的价值,更快交付。无论情况如何,组件化可以帮助构建一个代码库,它可以扩展到团队的规模并匹配当前开发速率。
在该模块中,我们将探索如何通过打包管理实现二进制组件,从而帮助管理和共享外部依赖项、OSS和隔离的共享组件。
要完成这个实验室需要:
如果没有使用VSTS Demo Data Generator,可以从GitHub仓库中复制代码。
已经在帐户上安装了扩展。打包订阅是NuGet打包订阅,可以为自己的依赖项使用,甚至与其他团队共享依赖关系。Nuget.org 是一个公共订阅,可以为其他开发人员发布包。
从团队项目中删除未使用的repo,以组织项目的源代码。
我们需要这个订阅的Url,这样就能够将开发人员连接到该订阅,并配置项目在自动化构建期间使用它。
我们将从先之前建和配置的打包开始。在当前示例中,创建打包的第一步是定义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。
<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
类别 | 文章名称 |
---|---|
概述 | 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 |