Win10下C#项目编译报MSB3577错误:本地化资源输出路径冲突
解决MSB3577资源文件路径冲突问题(多语言本地化C#项目)
问题根源
Win10环境下的.NET编译工具对语言文化代码的解析逻辑与Win7不同:旧的非标准文化代码zh-CHS(简体中文)、zh-CHT(繁体中文)会被映射为标准代码zh-CN、zh-TW,如果项目中同时存在新旧两种代码的资源文件,编译时会生成相同路径的.resources文件,触发MSB3577冲突错误。
排查与解决步骤
1. 定位冲突资源文件
打开项目资源列表,检查与FormProj1相关的多语言.resx文件:
- 确认是否同时存在
Proj1.FormProj1.zh-CHS.resx和Proj1.FormProj1.zh-CN.resx - 确认是否同时存在
Proj1.FormProj1.zh-CHT.resx和Proj1.FormProj1.zh-TW.resx
2. 统一文化代码规范
选择一种代码规范并删除重复资源文件:
- 若需兼容旧系统,保留
zh-CHS/zh-CHT,删除对应的zh-CN/zh-TW资源文件 - 若遵循标准文化代码,保留
zh-CN/zh-TW,删除zh-CHS/zh-CHT资源文件
3. 清理项目文件残留引用
用文本编辑器打开项目的.csproj文件,查找并删除重复的资源嵌入节点,例如:
<EmbeddedResource Include="Proj1.FormProj1.zh-CN.resx"> <DependentUpon>FormProj1.cs</DependentUpon> <LogicalName>Proj1.FormProj1.zh-CN.resources</LogicalName> </EmbeddedResource>
4. 清理编译目录并重新编译
- 删除项目的
obj\x64\Debug和bin目录 - 重新启动Visual Studio并编译项目
验证结果
编译完成后,查看obj\x64\Debug目录下的资源文件,确保每个语言对应的.resources文件路径唯一,例如:
Proj1.FormProj1.resources(默认语言)Proj1.FormProj1.zh-CHS.resourcesProj1.FormProj1.zh-CHT.resources
内容的提问来源于stack exchange,提问作者Sarah Weinberger
相关产品推荐
相关产品推荐

