C#项目中.resx文件编译报错(MSB4018)问题求助
解决C#项目中GenerateResource任务失败(路径格式不支持)的问题
以下是针对该错误的可行排查和解决步骤:
检查项目文件(.csproj)的工具路径配置
打开项目的.csproj文件,查找是否存在ResGenToolPath或SdkToolsPath这类自定义配置项。如果发现路径包含非法字符、格式错误或指向不存在的目录,直接删除该配置项,或修正为Windows SDK工具的标准路径(例如C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\)。验证.resx文件的属性设置
选中项目中所有.resx文件,查看属性窗口:- 确认生成操作为
Embedded Resource - 确认自定义工具为
ResXFileCodeGenerator(若需公共访问则选PublicResXFileCodeGenerator)
同时检查.resx文件的完整存储路径(包括项目根目录),确保没有非ASCII字符、全角符号等特殊字符。
- 确认生成操作为
清理MSBuild与NuGet缓存
以管理员身份打开命令提示符,依次执行以下命令:dotnet clean dotnet nuget locals all --clear执行完成后重新生成项目,让MSBuild重新定位ResGen工具的正确路径。
修复Windows SDK安装
打开Visual Studio安装器,确认已安装与项目目标框架匹配的Windows SDK组件。若存在安装损坏,选择对应SDK执行修改操作,修复缺失的工具文件和路径配置。临时切换项目目标框架
如果当前项目的目标框架版本存在兼容性问题,可临时切换到稳定版本(如.NET Framework 4.8或.NET 6),重新编译测试,排查是否因框架版本导致ResGen工具调用失败。
内容的提问来源于stack exchange,提问作者FileEX
相关产品推荐
相关产品推荐

