Unity2021.1.25f1加载项目报未知错误及CS0246错误无法运行
运行环境
- Unity引擎版本:2021.1.25f1
- C#脚本编辑器:Visual Studio 2022
触发的报错信息
项目加载阶段共出现2项阻塞运行的报错:
- 加载
Library/Artifacts/22/22ec59139bb4d4489ae56859248015ff时发生未知错误 Library\PackageCache\com.unity.test-framework@1.1.29\UnityEngine.TestRunner\NUnitExtensions\Runner\TestCommandBuilder.cs(65,31): error CS0246: 找不到类型或命名空间名'ImmediateEnumerableCommand'(是否缺少using指令或程序集引用?)
报错原因
- 第一项Artifact加载错误:
Library目录是Unity自动生成的资源导入、编译缓存目录,异常关闭编辑器、磁盘读写异常、跨版本打开项目都可能导致目录内的缓存文件损坏,哈希校验不通过就会报未知加载错误。 - 第二项CS0246编译错误:
com.unity.test-framework@1.1.29是适配Unity 2022及以上版本的测试框架包,2021.1.25f1内置的NUnit依赖版本不包含ImmediateEnumerableCommand类型,属于典型的包版本和引擎版本不兼容问题,一般是手动误升级测试包、包缓存拉取错误、manifest配置异常导致的。
解决步骤
按以下顺序操作即可修复,不需要重装Unity或VS:
- 完全关闭Unity编辑器和Visual Studio 2022,打开项目根目录,直接删除整个
Library文件夹,不要只删除报错的单个Artifact文件,单删大概率会触发其他缓存文件的连锁报错。 - 打开项目根目录下的
Packages文件夹,做两项检查:- 删除整个
PackageCache文件夹,清除已拉取的不匹配版本包缓存 - 打开
manifest.json文件,找到com.unity.test-framework字段,如果版本号标注为1.1.29,直接修改为"com.unity.test-framework": "1.1.24",这是2021.1.x系列官方验证的兼容版本
- 删除整个
- 重新用2021.1.25f1版本Unity打开项目,等待资源重新导入、脚本编译完成即可,导入时长根据项目大小决定,中途不要强制关闭编辑器。
- 如果上述操作完成后仍存在编译报错,打开编辑器顶部菜单
Window > Package Manager,在包列表中找到Test Framework,选择1.1.24版本点击重新安装,等待编译结束即可。
注意:2021.1系列Unity不要强行升级test-framework到1.1.29及以上版本,高版本测试框架没有做该引擎版本的API适配,会持续出现类型缺失、编译失败问题。
内容的提问来源于stack exchange,提问作者RMT
相关产品推荐
相关产品推荐

