前言
…熟悉不? 闹心吗?头疼吧?
最近在部署项目到现场主机的时候,经常遇到遇到GetThreadContexFailed这样的报错,因为机子装了特殊软件所以无法远程操作,导致我们工程师机票来回飞,甚是苦逼…
这是个典型早期unity版本开发的程序才会有的错误,它的出现极其不稳定,然而一出现就是大崩溃…运行数据全丢根本无法挽回…场面一度很尴尬!
有时候这个错误在把杀毒软件退出后会得到缓解。如果你短时间解决不掉这个问题可以让客户先手动把杀软卸载咯凑合用一段时间。。。。
部分win10系统会自带Windows Defener!这玩意关不掉!而且好像将程序添加进白名单也没啥用!
原因
这里具体操作请参考这篇帖子
排查和解决Unity 2018.3.6f1的“GetThreadContext failed”错误
经过上面帖子的作者一顿神操作,成功定位到了问题所在!
原因是mono_2_0_bdwgc.dll这个家伙除了问题,它是Boehm-Demers-Weiser垃圾回收器的一个实现。
这个BUG在2019年2月份修复了,所以要么你升级Unity要么自己手动编译这个动态库。。。
解决
方案1[推荐]
干脆 简单 粗暴 的解决方式:把项目升级到Unity 2019.3.x以上再发布就好了.
方案2
这里提供一个我用2019.3.11f1打包出来的mono_2_0_bdwgc.dll,大家可以拿去尝试替换一下看看好不好用。。。
链接:https://pan.baidu.com/s/14W_M-Gxa4YdXLy28H6Xr8g 提取码:d5s4
方案3
如果你用了很多插件,升级版本也会是一个不小的挑战,因为API变了可能会导致它报一大堆错误。。。
如果前两个方案都没法解决,请尝试上面帖子的编译操作(太麻烦我没试过…)