You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Android新项目报错CS0117:Resource无对应定义求助

解决Xamarin Android新项目资源CS0117错误的方案

我之前也碰到过类似的资源识别问题,结合你已经做的排查步骤,给你补充几个更针对性的解决方案,应该能搞定这个CS0117: 'Resource.*'不包含*的定义错误:

  • 检查Resource.Designer.cs的生成配置
    右键项目里的Resource.Designer.cs文件→属性,确认两个关键设置:

    • 「自定义工具」必须是MSBuild:GenerateResourceDesigner,如果不是手动修改,然后右键文件选择「运行自定义工具」重新生成资源绑定代码。
    • 「生成操作」要设为「编译」,确保这个文件会被正常编译进项目。
  • 彻底清理项目缓存再重新生成
    除了删除Obj/Debug,还要把项目根目录下的Bin文件夹、隐藏的.vs文件夹(包含VS的解决方案缓存)都删掉,然后关闭VS,重新打开后先执行「清理解决方案」,再执行「重新生成解决方案」。旧缓存残留是这类问题的常见元凶。

  • 核对AndroidManifest.xml的关键配置
    检查Manifest里的package属性值,必须和项目的「程序集名称」「默认命名空间」完全一致(在项目属性→应用里查看)。另外,Manifest里引用的资源(比如android:icon、android:theme)有没有拼写错误,或者引用了不存在的资源ID。

  • 严格检查资源文件的命名规范
    Xamarin Android对资源的命名有严格要求:

    • 资源文件名和资源ID只能用小写字母、数字和下划线,不能有大写、空格或特殊字符(比如my_button.xml是合法的,MyButton.xml或my button.xml会导致资源无法识别)。
    • 检查layout、drawable、values等所有资源目录下的文件和内部资源项名称,确保符合规范。
  • 统一NuGet包和目标框架版本
    因为你用了AppCompatActivity,要确保所有Xamarin.Android.Support系列的NuGet包版本完全一致,版本不兼容会导致资源生成异常。同时,项目的「目标Android版本」要和NuGet包支持的版本匹配(在项目属性→Android选项里设置)。

  • 重置VS组件缓存(针对Enterprise版)
    如果是VS Enterprise版的组件缓存出问题,可以试试:

    1. 关闭VS,找到路径%LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS版本号>\ComponentModelCache,删除该文件夹下的所有文件。
    2. 也可以打开VS开发者命令提示符,运行命令devenv /ResetSettings重置VS配置(注意:这会清空你的VS个性化设置,谨慎操作)。

内容的提问来源于stack exchange,提问作者netchicken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:07:04