使用Visual Studio开发Xamarin.Mac项目未自动生成ViewController.h/.m文件求助
Xamarin.Mac项目缺失.h/.m存根文件问题解决方案
核心结论
你不需要手动创建ViewController.h文件,该版本Visual Studio for Mac依然会自动生成ObjC存根文件,只是生成逻辑和存储路径和你预想的不同。
问题原因
- 这类.h/.m存根是VS for Mac生成的临时同步文件,不会持久保存在你的项目源码目录中,也不会展示在VS的解决方案文件列表里,默认存储在VS的临时缓存目录中。
- 只有从VS内部触发Xcode打开Interface Builder文件的操作,才会触发生成存根文件的逻辑,直接双击stroyboard文件打开Xcode不会触发同步,自然找不到对应的.h文件。
正确操作步骤
- 先完全关闭当前打开的所有Xcode窗口,退出Xcode进程。
- 回到Visual Studio for Mac的解决方案面板,找到你项目中的
.storyboard文件,右键选择「用Xcode Interface Builder打开」,等待1-2秒让VS完成后台同步。 - 打开Xcode后,点击右上角打开Assistant编辑器,编辑器上方的模式选择
Automatic,即可自动匹配加载对应的ViewController.h存根文件,正常拖拽关联Outlets/Actions即可。
异常排查方案
如果按照上述步骤操作依然找不到.h文件,按以下顺序排查:
- 检查你的
ViewController.cs类定义是否添加了[Register("ViewController")]特性,缺少该特性时VS不会识别到需要为该类生成ObjC存根。 - 清理VS解决方案缓存:点击顶部菜单栏「生成」->「清理全部」,再重新尝试通过VS打开Xcode。
- 检查Xcode的Assistant编辑器文件选择器的层级,确认选择的是
ViewController.h而非其他无关文件。
内容的提问来源于stack exchange,提问作者Tokio Inamura
相关产品推荐
相关产品推荐

