MAUI侧载AppInstaller自动更新失效及WPF/WinUI3实现方案
MAUI侧载AppInstaller自动更新问题解决方案
我在给MAUI项目开发带自动更新功能的侧载AppInstaller时,遇到了自动更新失效的问题。下面整理了WPF .NET、WinUI3的可行实现方法,以及MAUI的问题修复方案:
一、WPF .NET 侧载AppInstaller创建步骤
- 打开打包项目的Package.appxmanifest,启用AppInstaller支持,配置更新检查的远程地址
- 生成AppInstaller文件,在其中添加
<UpdateSettings>节点,设置AutomaticBackgroundTask="true"和UpdateBlocksActivation="false",让应用能在后台自动检查更新且不阻塞启动 - 发布时把安装包和AppInstaller文件一起部署到可访问的Web或文件服务器上
二、WinUI3 侧载AppInstaller创建步骤
- 确保项目是MSIX打包类型,在Package.appxmanifest的「打包」选项卡中勾选「启用自动更新」
- 在AppInstaller文件里设置
<Uri>节点,指向存放更新包的远程路径 - 测试时直接通过AppInstaller文件安装应用,验证后台自动更新的触发逻辑是否正常
三、MAUI 侧载AppInstaller问题及修复方案
问题表现
按常规步骤配置MAUI的AppInstaller后,自动更新功能完全没反应。排查后发现是MAUI打包项目的默认配置没正确关联更新逻辑。
修复步骤
- 手动编辑MAUI打包项目的
.wapproj文件,加入以下配置:
<PropertyGroup> <GenerateAppInstallerFile>True</GenerateAppInstallerFile> <AppInstallerUri>https://your-update-server.com/updates/</AppInstallerUri> <AutomaticBackgroundTask>True</AutomaticBackgroundTask> <UpdateBlocksActivation>False</UpdateBlocksActivation> <AppInstallerCheckForUpdateFrequency>OnApplicationRun</AppInstallerCheckForUpdateFrequency> </PropertyGroup>
- 在Package.appxmanifest中添加更新所需的能力声明:
<Capabilities> <rescap:Capability Name="packageManagement" /> </Capabilities>
- 发布MAUI应用时,要把生成的AppInstaller文件和MSIX包一起部署到指定的更新服务器,并且确保文件权限设置为公开可访问
- 测试时通过AppInstaller文件安装应用,启动后检查后台更新任务是否正常触发
内容的提问来源于stack exchange,提问作者Marek Pio
相关产品推荐
相关产品推荐

