Azure DevOps dotnet ef迁移脚本命令运行缓慢

时间:2019-09-05 16:28:01

标签: azure-devops

我在同一解决方案中有两个DBContext。当我在本地为任何DBContext运行EF迁移命令时,它会在30秒内成功执行。

 dotnet ef migrations script -s $(Build.SourcesDirectory)/MyProject.Web/ --output $(build.artifactstagingdirectory)\myproject-DBScript-$(build.SourceBranchName)\$(build.SourceBranchName)-migrationScript.sql --context DBContext  --idempotent

但是当我运行相同的命令作为azure构建的一部分时,它需要7到15分钟的时间。请注意,我可以看到构建日志,这是实际的命令,它花费的时间更长,而不是代理的可用性或诸如dotnet下载问题之类的任何工具。构建代理是带有Vs2017的Windows。

为什么本地和Azure-Devops的时间线不同,上述命令有问题,还是在Azure-Devops上运行EF迁移的正常时间。 Logs

1 个答案:

答案 0 :(得分:0)

Microsoft托管的代理可能需要更长的时间才能开始构建。将您的工作分配到Microsoft托管的代理程序通常只需要几秒钟,但是有时分配代理程序可能需要几分钟,具体取决于我们系统上的负载。

如果Microsoft托管的代理不满足您的需求,则可以deploy your own self-hosted agents作为解决方法。自托管代理使您可以更好地控制安装构建和部署所需的从属软件。而且,机器级别的缓存和配置在每次运行时都会持续存在,这可以提高速度。

使用自托管代理可能会带来潜在的性能优势,这些代理可以更快地启动和运行构建。有关详细信息,请参阅此docs