UWP编译报错PRI277: 0xdef00532,资源值冲突求助
解决UWP项目中MakePri.exe报错PRI277: 0xdef00532 - 资源值冲突的问题
我之前也碰到过这个头疼的问题,MakePri.exe报资源值冲突,本质上是项目里出现了重复的资源键,或者不同资源文件里的同名资源内容不匹配导致的。下面是我整理的几个有效解决思路:
检查重复的资源键
先去项目的资源文件(比如.resw、.resjson这类)里排查有没有重复的键名。比如不同语言的资源文件中,同一个键对应的内容不一致,或者同一个资源文件里重复定义了同一个键。可以用Visual Studio的「查找所有引用」功能搜索资源键,快速定位重复定义的情况。清理PRI缓存和生成文件
有时候是生成过程中缓存的旧PRI文件引发的冲突,试试这些步骤:- 关闭Visual Studio
- 删除项目根目录下的
obj和bin文件夹 - 重新打开项目,执行「清理解决方案」(菜单→项目→清理解决方案)
- 最后重新生成项目
检查priconfig.xml配置
你提供的命令行里用到了priconfig.xml,这个文件控制着资源索引的规则。打开这个文件看看是否存在配置错误:比如是否包含了不该纳入的资源目录,或者资源合并规则设置不合理。如果配置的多个资源目录里有同名但值不同的资源,就会触发冲突。排查第三方库或NuGet包的资源冲突
如果项目最近添加了新的NuGet包,有可能是第三方包自带的资源和你的项目资源重名了。可以尝试暂时移除最近添加的包,重新生成项目看看是否还报错,逐步排查出引发冲突的包。手动运行MakePri.exe查看详细日志
你可以手动执行MakePri.exe并加上/Verbose参数,获取更详细的错误信息,这样能精准定位到具体是哪个资源出了问题。命令示例如下:C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\MakePri.exe New -ProjectRoot C:\AdaptSource\src\Xivic\Adapt.Presentation.XamarinForms\Adapt.Presentation.Xivic.UWP\ -ConfigXml obj\x86\Debug\priconfig.xml -OutputFile C:\AdaptSource\src\Xivic\Adapt.Presentation.XamarinForms\Adapt.Presentation.Xivic.UWP\bin\x86\Debug\resources.pri /Verbose详细日志会明确告诉你是哪个资源键或者哪个文件导致的冲突,方便你针对性修复。
内容的提问来源于stack exchange,提问作者Christian Findlay
相关产品推荐
相关产品推荐

