You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移Xamarin至.NET MAUI后DevOps CI构建报错APT2113:PNG签名异常

解决方案:.NET MAUI CI构建时APT2113 PNG签名错误

针对你迁移Xamarin到.NET MAUI后,本地Release构建正常但DevOps CI流水线出现PNG签名错误的问题,可尝试以下排查和解决步骤:

1. 清理CI构建缓存

CI环境的obj目录可能残留旧的损坏生成文件,构建前强制清理工作目录:
在Build步骤前添加清理任务:

- task: CmdLine@2
  displayName: 'Clean project'
  inputs:
    script: |
      dotnet clean $(app-path-project) -c Release

或者在publish命令中加入清理参数:

dotnet publish $(app-path-project) -c Release -f $(app-target-framework-android) /p:ApplicationId=$(app-id-android) /p:Clean=true

2. 确认图片的构建操作配置

检查项目文件(.csproj)中这些PNG图片的BuildAction是否正确设置为MauiImage,确保配置类似:

<ItemGroup>
  <MauiImage Include="Resources\Images\logout.png" />
  <MauiImage Include="Resources\Images\receiver.png" />
  <MauiImage Include="Resources\Images\clear.png" />
</ItemGroup>

迁移过程中可能残留Xamarin时代的AndroidResource配置,导致Resizetizer处理异常。

3. 临时禁用Resizetizer排查问题

在publish命令中添加参数禁用Resizetizer,验证是否为图片处理环节的问题:

dotnet publish $(app-path-project) -c Release -f $(app-target-framework-android) /p:ApplicationId=$(app-id-android) /p:EnableResizetizer=false

如果构建成功,说明是Resizetizer的版本或配置问题,建议升级.NET MAUI SDK到最新稳定版。

4. 对齐本地与CI的.NET MAUI SDK版本

确认CI代理环境的.NET MAUI SDK版本与本地开发环境完全一致。旧版本的Resizetizer存在已知的图片处理bug,可在CI流水线中添加SDK安装步骤指定版本:

- task: UseDotNet@2
  displayName: 'Install .NET 7 SDK'
  inputs:
    packageType: 'sdk'
    version: '7.0.400' # 替换为你本地使用的版本

5. 检查Git文件拉取完整性

如果使用Git LFS存储图片,需确保CI流水线正确配置了LFS拉取,避免生成的是LFS占位符文件而非真实PNG。可在CI步骤中添加:

git lfs pull

内容的提问来源于stack exchange,提问作者Taranveer Johal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 16:05:39