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

如何从远程服务器更新.NET MAUI Windows应用程序?

实现MAUI应用自动更新的可行方案

基于MSIX安装包的原生自动更新(Windows平台优先推荐)

既然你之前用WinForms+FTP实现过自动更新,MAUI Windows端更适合用官方原生的MSIX App Installer机制,比手动FTP下载更稳定且符合Windows应用更新规范。

1. 配置MSIX打包与更新元数据

  • 先在Visual Studio中开启MAUI项目的MSIX打包(项目属性 → 打包 → 勾选"生成MSIX包")。
  • 编辑Package.appxmanifest,添加更新相关配置:
    <Properties>
      <AppInstallerUri>https://你的远程服务器/你的应用.appinstaller</AppInstallerUri>
      <AutoUpdate>true</AutoUpdate>
      <UpdateInterval>6</UpdateInterval> <!-- 自动检查更新的间隔(单位:小时) -->
    </Properties>
    

2. 生成并配置App Installer文件

  • 生成MSIX包后,Visual Studio会自动生成对应的.appinstaller文件,修改其中的UpdateUri指向远程服务器上的最新版MSIX地址:
    <AppInstaller
      xmlns="http://schemas.microsoft.com/appx/appinstaller/2018"
      Version="1.0.0.0"
      Uri="https://你的远程服务器/你的应用.appinstaller"
      UpdateUri="https://你的远程服务器/你的应用_v1.0.1.0.msix">
      <MainPackage
        Name="你的应用ID"
        Publisher="CN=你的证书名称"
        Version="1.0.0.0"
        Uri="https://你的远程服务器/你的应用_v1.0.0.0.msix" />
    </AppInstaller>
    

3. 部署文件到远程服务器

  • 将.appinstaller文件和各版本MSIX包上传到你的FTP服务器(和之前WinForms的部署方式一致)。
  • 确保服务器配置正确的MIME类型:.msix对应application/msix,.appinstaller对应application/appinstaller,避免浏览器无法识别文件。

4. 主动触发更新检查(可选)

虽然App Installer会自动检查更新,但你可以在应用启动时主动触发,给用户更明确的提示:

#if WINDOWS
using Windows.ApplicationModel;
using Windows.ApplicationModel.Store.Preview.InstallControl;

private async Task CheckForUpdates()
{
    var updateManager = await AppUpdateManager.GetDefaultAsync();
    var updateStatus = await updateManager.CheckForUpdateAsync();
    
    if (updateStatus.UpdateAvailability == UpdateAvailability.Available)
    {
        // 提示用户有更新,确认后启动更新
        await updateManager.StartUpdateAsync();
    }
}
#endif

沿用FTP手动更新的跨平台方案

如果想继续用之前的FTP模式,可实现跨平台通用的更新逻辑:

  • 在FTP服务器根目录放置一个version.json文件,记录最新版本号和安装包下载路径。
  • 应用启动时,下载该文件并对比本地版本号。
  • 若有更新,下载对应平台的安装包(Windows用MSIX/EXE,Android用APK等)。
  • 下载完成后,调用系统安装接口并退出当前应用(Windows需注意管理员权限,Android需申请安装权限)。

常见问题排查

  • App Installer更新失效:检查远程服务器文件路径是否可访问,新版本MSIX必须用与旧版本相同的证书签名,Windows系统需允许从Web安装应用(设置 → 应用 → 应用和功能 → 选择"允许任意来源的应用")。
  • FTP手动更新失败:确保FTP服务器权限正常,下载过程中处理好网络异常,安装包路径需对应正确的平台格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:45:15