Unity 2017.3.0f3编译UWP项目触发NullReferenceException错误
解决Unity 2017.3.0f3编译UWP时的NullReferenceException问题
你的推测完全正确——这个空引用错误确实和VS2017缺失UWP相关的C#编译组件有直接关系,当然也有其他几个可能的修复方向,我给你整理了具体的排查步骤:
1. 先补全VS2017的UWP核心组件
打开Visual Studio Installer,找到你的VS2017实例点击「修改」:
- 务必勾选**「通用Windows平台开发」**这个工作负载
- 展开该工作负载的「可选组件」,一定要选这两个:
C#和Visual Basic通用Windows平台工具(这是Unity调用UWP C#编译器的关键依赖)- 对应你项目目标版本的
Windows 10 SDK(Unity 2017.3推荐用10.0.15063.0或更高版本,尽量选Unity编辑器中提示的SDK版本)
安装完成后重启VS和Unity,再尝试构建。
2. 确认Unity的外部工具配置正确
打开Unity编辑器,走「Edit」→「Preferences」→「External Tools」路径:
- 确保「External Script Editor」选的是你安装的VS2017版本
- 检查「Windows Store Apps」下的「Visual Studio Version」是否正确指向VS2017,没选对的话手动指定
3. 其他兜底修复方案
如果组件都装对了还是报错,可以试试这些操作:
- 清理Unity编译缓存:删掉项目根目录的
Library、Temp、Obj文件夹,重启Unity重新导入项目,很多编译异常都是缓存脏了导致的 - 重置VS用户数据:打开VS2017的开发者命令提示符,输入
devenv /resetuserdata,重置后重启VS,能解决一些工具链的隐性配置问题 - 检查脚本的预编译分支:编辑器运行正常不代表UWP分支没有问题,打开「Assets」→「Open C# Project」在VS里检查所有脚本,尤其是带
#if UNITY_WSA这类预编译指令的代码,确保没有语法错误或空引用隐患
额外提醒:Unity 2017.3.x对VS2017的兼容性要求比较苛刻,SDK版本和工具链必须完全匹配,别混用过高或过低的SDK,否则也会触发这类编译链的空引用错误。
内容的提问来源于stack exchange,提问作者Juhana Pietari Lehtiniemi
相关产品推荐
相关产品推荐

