Visual Studio 22 使用 .NET Core 6 构建时间缓慢

5

从.NET Core 2.1迁移到.NET Core 6.0后,构建时间变慢了,大约需要1分30秒。通过使用MSBuild Log Viewer(https://msbuildlog.com/),结果显示最耗时的任务是CoreCompile,它占用了1分22秒,从1分30秒中扣除(可以在下面看到构建日志图像)。

在输出窗口中可以看到构建被卡住了。

C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\Roslyn\csc.exe

确定最昂贵的任务后,减少构建时间的下一步是什么?非常感谢您的帮助。

重要通知(使用相同的MSBuild版本.net core 2.1构建同一项目的构建时间仅为16秒,但在迁移到.net core 6.0后,该项目的构建时间为1:30)

enter image description here


“确定问题后” - Roslyn\csc.exe 看起来像编译器本身,所以我不会说你已经确定了问题。 - Guru Stron
我建议创建一个 [mre] 并为 roslyn 团队创建一个 bug。 - Guru Stron
我的意思是,如果这是编译器问题,那为什么在(.NET Core 2.1版本)中构建相同的项目时,构建时间正常(16秒),尽管两个版本都使用相同的编译器。 - mohammed alani
你能安装ProcMon,为csc.exe设置一个过滤器并重新编译吗? - mu88
首先,尝试从解决方案中删除所有的 binobj 文件夹(或者如果您使用 git - 将所有更改提交到分支并执行 git clean -fdx),然后重新构建解决方案。 - Guru Stron
显示剩余2条评论
1个回答

2
在我的经验中,很多时候编译时间慢是由于一些缓慢的分析器引起的(即使是由 MS 提供的分析器也可能很慢)。
您可以通过在构建时使用 /p:ReportAnalyzer=true MSBuild 属性并记录(通过 /bl 标志)和 viewing 生成的 binlog 来获取有关各种分析器如何影响构建时间的详细诊断信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接