Rider .NET偶发无法构建项目提示已有构建在进行,重启无效该如何解决?
问题成因
- Rider 2021.2.2版本存在原生构建状态跟踪缺陷,对MsBuild 5.x版本的构建进程状态同步逻辑有BUG,异常中断的构建任务不会自动重置内部的构建中标记,也不会主动释放关联的进程锁。
- MsBuild 5.0.104的后台驻留进程意外挂死,未响应Rider的构建终止信号,导致Rider判定仍有构建任务在运行中。
- 项目
bin、obj目录下残留上次构建异常中断产生的锁标记文件,MsBuild启动时检测到该文件会直接返回another build is already in progress报错。
高效解决方案
按操作耗时从低到高排序,优先尝试靠前的方案即可:
- 结束所有挂死的MsBuild进程:Windows系统在任务管理器中终止所有
MSBuild.exe进程;macOS/Linux系统执行命令killall msbuild。操作耗时不超过10秒,完成后直接重新触发构建即可解决90%的偶发问题。 - 手动清理构建残留文件:删除解决方案下所有项目的
bin、obj目录内的全部内容(无需删除目录本身),无需重启Rider,清理完成后直接重新构建即可,仅需数秒到数十秒(依项目规模而定)。 - 定向清理构建缓存:若上述方案无效,打开Rider的
File菜单,选择Invalidate Caches,仅勾选Clear build system caches和Clear downloaded shared indexes两个选项后重启,无需全量清除所有缓存,重启速度比全量清缓存快70%以上,不会丢失个人配置。
永久规避方案
升级Rider到2021.3及以上版本,该版本官方已修复对MsBuild 5.x系列的构建状态跟踪BUG,可彻底避免该类问题复现。
内容的提问来源于stack exchange,提问作者Александр Пушкин
相关产品推荐
相关产品推荐

