Visual Studio 2022中无法从Resources.resx生成Resources.Designer.cs文件
问题排查与解决方法
以下是针对你遇到的resx文件无法生成Designer.cs的常见原因及对应解决步骤:
1. 检查重复的资源键
ResXFileCodeGenerator遇到重复的<data>节点name属性时会静默停止生成代码,不会给出任何提示。
- 打开Resources.resx的XML视图,搜索所有
<data name="xxx">条目,检查是否存在重复的name值。 - 若有重复,删除或重命名其中一个重复条目后,右键运行自定义工具重试。
2. 排查未转义的XML特殊字符
批量添加的翻译文本中如果包含&、<、>、"、'这类XML特殊字符,必须转义才能被代码生成器正常解析(VS资源管理器的显示逻辑对特殊字符容错更高)。
- 打开resx的XML视图,检查批量添加的字符串内容:
- 把
&替换为& - 把
<替换为< - 把
>替换为> - 把双引号
"替换为" - 把单引号
'替换为'
- 把
- 保存修改后重新运行自定义工具。
3. 确认自定义工具属性配置
检查resx文件的属性是否被意外修改:
- 在VS解决方案资源管理器中选中Resources.resx,按F4打开属性窗口
- 确认自定义工具字段为
ResXFileCodeGenerator - 确认自定义工具命名空间与项目的Properties命名空间一致(比如项目名为MyWpfApp,这里应为
MyWpfApp.Properties) - 修改后右键点击resx文件,选择“运行自定义工具”
4. 清理VS缓存与项目编译文件
VS的缓存或旧编译文件可能干扰代码生成:
- 关闭Visual Studio
- 删除项目根目录下的
.vs隐藏文件夹、bin和obj目录 - 重新打开项目,右键运行自定义工具
5. 检查resx文件编码
无BOM的UTF-8编码可能导致ResXFileCodeGenerator解析异常:
- 用VS Code打开resx文件,点击右下角的编码标识(比如“UTF-8”)
- 选择“通过编码保存”,选择
UTF-8 with BOM格式 - 保存后回到VS中运行自定义工具
6. 通过设计视图查看错误提示
双击Resources.resx打开设计视图,查看顶部是否有红色错误提示。设计视图会显示代码生成器未抛出的格式或内容错误,根据提示修正后重试。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

