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

将Xamarin.Forms UWP应用升级到MAUI,如何保留原应用数据目录?

解决MAUI应用升级Xamarin.Forms UWP应用时包目录哈希不一致的问题

那个随机字符是Windows根据应用发布者身份信息生成的哈希值,用来区分同一ApplicationId但不同发布者的应用。要让系统识别MAUI应用为原Xamarin应用的更新,必须保证发布者身份完全一致,步骤如下:

1. 获取原Xamarin.Forms UWP应用的发布者信息

  • 直接查看原Xamarin项目的UWP部分的Package.appxmanifest文件,找到<Publisher>节点的内容,比如CN=你的发布者名称
  • 或者用PowerShell命令查询已安装的原应用:
    Get-AppxPackage -Name "你的ApplicationId"
    
    查看输出中的Publisher字段值,这就是关键的身份标识。

2. 在MAUI项目中配置相同的发布者信息

  • 打开MAUI项目的Windows平台配置文件Platforms/Windows/Package.appxmanifest,确保其中的<Publisher>节点值和原应用完全一致,不能有任何拼写或格式差异
  • 核心:使用和原应用相同的代码签名证书:
    • 找到原Xamarin项目打包时使用的.pfx证书文件(如果是自签名证书,可能在原项目目录或用户的证书存储中)
    • 右键MAUI项目→属性→Windows→打包→点击"选择证书",导入原证书并输入正确的密码

3. 验证配置并部署

  • 构建MAUI的Windows包后,用PowerShell验证发布者信息是否匹配:
    Get-AppxPackage -Path "MAUI包路径\AppxManifest.xml"
    
  • 部署MAUI应用后,系统会自动使用和原Xamarin应用相同的Packages目录,原数据会被保留,且被识别为合法更新

注意事项

  • 如果原应用使用的是Visual Studio默认的临时自签名证书,需要先导出原证书(在原Xamarin项目的打包设置中导出),再导入到MAUI项目使用,避免生成新的临时证书导致哈希不一致
  • 不要尝试手动修改系统生成的Packages目录名称,这会导致应用运行异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:14:54