VS2017 IntelliSense报错:Resource.Dimension无自定义维度定义
解决Visual Studio 2017中Xamarin.Android自定义维度资源IntelliSense标红问题
这个问题我之前帮不少开发者排查过,大概率是资源生成流程或项目配置的小疏漏,咱们一步步来搞定:
1. 确认维度文件的生成操作设置
首先得确保你的Resources\values\dimens.xml被正确识别为Android资源:
- 在解决方案资源管理器里右键点击
dimens.xml,选择「属性」 - 检查「生成操作」是否设置为
AndroidResource(别选成Content或None) - 若设置不对,修改后保存,先清理项目再重建
2. 重置自动生成的资源文件
Xamarin.Android靠Resource.designer.cs让C#代码访问资源,这个文件偶尔会过期:
- 右键项目选择「清理」,清空旧的生成文件
- 找到项目目录下
obj\Debug(或Release)文件夹,删除里面的Resource.designer.cs - 重新右键项目选择「生成」,VS会重新生成完整的资源映射
- 生成完成后打开
Resource.designer.cs,搜一下你自定义的main_text_item_size,确认它已经被包含进去
3. 检查维度名称的命名规范
虽然你的示例名称main_text_item_size没问题,但还是要确认:
- 维度名称只能用小写字母、数字和下划线,不能有大写、空格或特殊字符
- 如果之前有不符合规范的命名,修改后重复步骤2的清理重建操作
4. 排查Xamarin工具版本问题
旧版本的Xamarin.Android工具偶尔会有资源解析bug:
- 打开VS2017的「工具」→「选项」→「Xamarin」→「Android设置」,看看有没有可用的工具更新
- 若有更新,安装后重启VS,再重新生成项目
应急临时方案(不推荐长期用)
如果上面的方法都没立刻生效,你可以先通过资源ID直接访问应急:
var textSize = Resources.GetDimension(Resource.Dimension.main_text_item_size);
不过还是建议搞定根源问题,让IntelliSense正常工作更省心
内容的提问来源于stack exchange,提问作者Sobansky
相关产品推荐
相关产品推荐

