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

如何为MAUI Windows应用配置启动时自动更新?

MAUI Windows 应用自动更新可行方案

方案一:修复官方文件夹发布的安装源配置(解决你之前的失效问题)

你之前按官方文档设置没生效,大概率是配置细节没做到位,按下面步骤重新配置:

  • 发布1.0.1版本时,在Visual Studio发布配置里必须勾选「生成应用安装程序文件(.appinstaller)」
  • 编辑生成的AppInstaller.xml,重点检查这几个地方:
    1. 安装源URI格式:本地路径要写成file:///D:/MAUI/(三个斜杠开头),服务器路径要确保末尾带斜杠,比如https://www.example.com/MAUI/
    2. 版本匹配:AppInstaller.xml里的Version要和1.0.1安装包的版本号完全一致,服务器上必须同时放好1.0.1的.msix、Package.xml和更新后的AppInstaller.xml
    3. 客户端安装方式:用户必须通过.appinstaller文件安装应用,不能直接双击.msix——只有通过安装程序文件部署,系统才会监听更新源
  • 另外,服务器要确保这些文件能被客户端正常访问,不要有防火墙或权限拦截

方案二:用MAUI社区工具包的更新组件

这是社区维护的成熟方案,比官方配置更灵活:

  • 先安装NuGet包:CommunityToolkit.Maui.Updates
  • 在MauiProgram.cs里注册服务:
    builder.UseMauiApp<App>()
           .UseMauiCommunityToolkitUpdates();
    
  • 在应用启动的页面(比如MainPage)的OnAppearing方法里加更新检查逻辑:
    var updateManager = ServiceProvider.GetRequiredService<IUpdateManager>();
    var updateInfo = await updateManager.CheckForUpdatesAsync();
    if (updateInfo.IsUpdateAvailable)
    {
        // 这里可以加个弹窗提示用户有更新
        await updateManager.DownloadAndInstallUpdateAsync();
    }
    
  • 你需要在服务器上放一个版本清单文件(比如version.json),里面写清楚最新版本号、安装包下载链接,组件会自动对比本地版本和清单版本

方案三:自定义更新逻辑(完全可控)

如果上面的方案都不符合你的需求,可以自己写一套:

  1. 在服务器上做个简单的接口,返回最新版本信息,比如:
    {
      "LatestVersion": "1.0.1",
      "DownloadUrl": "https://www.example.com/MAUI/MyApp.msix"
    }
    
  2. 应用启动时,调用这个接口,获取最新版本号,和本地版本对比(用AppInfo.Current.VersionString拿本地版本)
  3. 如果有更新,提示用户下载安装包,下载完成后启动安装进程:
    var process = new Process();
    process.StartInfo.FileName = "msiexec.exe";
    // /quiet是静默安装,去掉的话会弹出安装界面
    process.StartInfo.Arguments = $"/i \"{下载好的文件路径}\" /quiet";
    process.Start();
    
  4. 额外处理:可以加下载进度条、安装完成后自动重启应用的逻辑,注意安装可能需要管理员权限,要提前提示用户

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:20:26