如何配置Visual Studio使其匹配Unity HoloLens开发的API
我之前开发HoloLens UWP应用时也碰到过一模一样的问题——VS的代码补全总给我显示一堆UWP根本用不了的API,折腾了好几天才捋顺,给你分享几个亲测有效的解决步骤:
1. 先把Unity端的UWP构建配置拉到位
这是最基础的一步,很多人容易忽略:
- 打开Unity的
File > Build Settings,切换到Universal Windows Platform平台,点击Player Settings按钮。 - 在
Player Settings的Other Settings面板里,找到Configuration区域:- 把
Scripting Runtime Version设置为.NET 4.x Equivalent(这个版本对UWP的API兼容性支持更好) - 关键!
Api Compatibility Level一定要选.NET for Universal Windows Platform,选这个Unity才会严格限制到UWP可用的API子集,生成的VS项目才会对应正确的API范围
- 把
- 重新生成VS项目(点击Build Settings里的
Build或者Build and Run),确保Unity输出的项目是完全适配UWP的
2. 调整Visual Studio 2017的项目目标设置
打开Unity生成的VS解决方案后,别着急写代码,先检查项目配置:
- 右键点击UWP主项目(就是带
.appxmanifest文件的那个项目,不是Unity的子项目),选择Properties - 切换到
Application标签页:- 确认
Target version和Minimum version都选HoloLens支持的Windows 10版本,比如**Windows 10 Anniversary Update (10.0; Build 14393)**或者更高,要和Unity里的设置保持一致
- 确认
- 再切到
Build标签页:Platform target选x86(HoloLens 1是x86架构,HoloLens 2可以选ARM64,但Unity 2017.2对x86的适配更稳定)- 如果你的项目用到unsafe代码,记得勾选
Allow unsafe code,但这个不是必须的
3. 重置Visual Studio的IntelliSense缓存
有时候IntelliSense会抽风,缓存没跟上项目配置的变化:
- 完全关闭Visual Studio
- 找到你的项目文件夹,删除里面的
.vs隐藏文件夹(注意这个文件夹默认是隐藏的,要先显示隐藏文件) - 重新打开VS解决方案,耐心等IntelliSense重新加载完成(可能需要几分钟,别中途操作)
- 另外,也可以在VS里手动刷新:点击
Edit > IntelliSense > Refresh Local Cache,有时候能快速解决小问题
4. 手动确认UWP扩展引用
如果上面的方法还不行,可能是VS没正确加载HoloLens需要的UWP扩展:
- 在VS的UWP项目里,右键点击
References,选择Add Reference - 展开
Universal Windows>Extensions,确保勾选了Windows Mobile Extensions for the UWP和Windows IoT Extensions for the UWP(这两个是HoloLens运行必需的扩展) - 同时检查
References里的.NET引用,别引入桌面版的.NET库(比如System.dll的桌面版本),这些会让代码补全显示UWP不支持的API
额外小技巧:用Unity的API Validation提前排查
Unity自带了一个工具可以帮你提前找出不兼容的API:
- 打开
Window > Analysis > API Validation,这个工具会扫描你的代码,标记出所有UWP不支持的API,提前修复这些问题,也能让VS的代码补全更准确
按这个顺序一步步来,基本就能解决代码补全和实际可用API不匹配的问题了,我当时就是这么搞定的。
内容的提问来源于stack exchange,提问作者Jethro
相关产品推荐
相关产品推荐

