【发布时间】:2018-04-09 03:24:27
【问题描述】:
我有 asp.net core 2.0 应用,它引用了 Microsoft.AspNetCore.All 元数据包
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
我在 VSTS 中有以下构建,我使用托管构建代理构建。
为什么恢复软件包总是需要至少 95 秒?我以为
-
Microsoft.AspNetCore.All包缓存在“.NET Core 运行时存储”中,因此不必恢复它们。 - 当我恢复一次包时,不必在每次构建中都再次恢复它们,因为它们已被缓存。
为什么 VSTS 中的 dotnet restore 这么慢?
编辑:投票支持更好的 VSTS 构建性能:https://visualstudio.uservoice.com/forums/330519-visual-studio-team-services/suggestions/32044321-improve-hosted-build-agent-performance
【问题讨论】:
-
您使用的是托管代理还是私有代理?托管代理始终来自新的虚拟机,因此不会发生缓存。
-
像往常一样,答案是花钱解决问题。托管的构建代理很好,因为它们不需要任何配置并且是免费提供的。但是,如果构建时间很关键,那么您应该考虑创建自己的专用构建服务器,您可以根据需要(或负担得起)尽可能地制作它。否则,拿走你得到的并快乐。
-
@DanielMann:我提到的托管代理。
-
@ChrisPratt:钱不是问题。时间就是问题,我必须管理的专用构建服务器是浪费时间。只要服务能节省我的时间,我就没有问题。
-
我想更好的问题是,为什么不缓存“Microsoft.AspNetCore.All”之类的常见内容?这应该很常见。这开始需要几分钟才能恢复。通过缓存它,它实际上应该减少 VSTS 团队内部的 VM 成本负载。
标签: asp.net-core nuget .net-core azure-devops azure-pipelines