dotnet恢复在VSTS上耗时太长

时间:2017-10-27 13:39:29

标签: asp.net-core nuget .net-core azure-devops azure-pipelines

我有asp.net core 2.0 app,它引用了Microsoft.AspNetCore.All元数据包

<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />

我在VSTS中进行了以下构建,我使用托管构建代理构建。

为什么恢复包裹总是需要95秒?我以为

  1. Microsoft.AspNetCore.All包缓存在“.NET Core运行时商店”中,因此无需恢复它们。
  2. 当我恢复一次包时,不必在每个构建中再次恢复它们,因为它们是缓存的。
  3. enter image description here

    为什么dotnet在VSTS中恢复得如此之慢?

    编辑:在此投票以获得更好的VSTS构建效果:https://visualstudio.uservoice.com/forums/330519-visual-studio-team-services/suggestions/32044321-improve-hosted-build-agent-performance

3 个答案:

答案 0 :(得分:3)

来自Hosted Agents上的Microsoft文档:

  

能力和限制

     

托管代理商:

     
      
  • 作为服务运行。
  •   
  • 拥有上述软件。您也可以使用我们的工具安装程序添加软件。
  •   
  • 提供10GB的存储空间。
  •   
     

托管代理商不提供:

     
      
  • 互动模式。
  •   
  • 管理员权限。
  •   
  • 登录的能力。
  •   
  • 将工件丢弃到UNC文件共享的功能。
  •   
  • 运行XAML版本的能力。
  •   
  • 使用可能更快启动和处理构建的私有代理可能会获得的潜在性能优势。 Learn more
  •   
     

如果我们的托管代理商无法满足您的需求,您可以deploy your own private agents

长期和短期,使用托管代理,您得到的就是您得到的。如果它对你来说不够快或者没有做你想做的其他事情(例如缓存NuGet包),那么你的办法就是创建自己的私有构建代理。

答案 1 :(得分:3)

NuGet软件包本身的下载速度非常快,实际上是在它开始之后。

如果查看日志,任务花费大约1分钟(每个版本稍有不同),什么都不做。

从我最后一次记录中,50秒无所事事:

...
2018-02-04T09:51:47.1349027Z [command]d:\a\_tool\NuGet\4.3.0\x64\nuget.exe restore d:\a\1\s\MySolution.sln -Verbosity Detailed -NonInteractive -ConfigFile d:\a\1\Nuget\tempNuGet_84.config
2018-02-04T09:52:37.2580691Z NuGet Version: 4.3.0.4406
...

答案 2 :(得分:0)

请尝试使用解决方案文件代替**/*.csproj。对我而言,还原**/*.csproj大约需要2分钟,而还原解决方案文件仅需 10秒