使用Xamarin开发UWP应用时突发CopyWin32Resources错误(退出码500)
可行解决方案
清理项目编译缓存
手动删除项目根目录下的obj、bin文件夹,以及解决方案根目录的.vs隐藏目录,之后重新生成解决方案。彻底清除残留的损坏编译文件,避免修改项目后旧缓存触发错误。锁定UwpCoreRuntimeSdk版本
在NuGet包管理器中找到Microsoft.Net.UwpCoreRuntimeSdk,将版本固定为2.2.14(修复后短暂有效的版本),防止版本自动回退或更新,重新安装该包后清理项目再编译。排查资源文件问题
错误源于Win32资源复制失败,检查项目中近期新增/修改的.res、.rc等资源文件,尝试移除可疑资源或重新生成资源文件,排除文件损坏或冲突的可能。统一目标平台版本
右键UWP项目→属性→应用,将目标平台版本与最低版本设置为同一Windows 10版本(如22H2),避免版本不兼容导致的资源复制逻辑异常。修改CoreRuntime.targets配置
打开错误提示中的Microsoft.Net.CoreRuntime.targets文件(路径:C:\Users\WiandeJager\.nuget\packages\microsoft.net.uwpcoreruntimesdk\2.2.14\tools\CoreRuntime\Microsoft.Net.CoreRuntime.targets),找到第238行的CopyWin32Resources任务,添加IgnoreDuplicates="true"参数跳过重复资源复制,示例:<CopyWin32Resources SourceResources="@(CoreRuntimeWin32Resources)" DestinationResource="$(IntermediateOutputPath)\$(TargetName).coreruntime.res" IgnoreDuplicates="true" Condition="'@(CoreRuntimeWin32Resources)' != ''" />保存修改后重新编译项目。
内容的提问来源于stack exchange,提问作者Wian de Jager

