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