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

如何用Windows Application Packaging Project打包含Fixup DLL的MSIX并部署到文件共享实现自动更新?

解决方案:集成Package Support Framework到Windows Application Packaging Project并部署到共享目录

一、在打包项目中直接集成PSF修复组件

不用手动解压重签MSIX,直接在Windows Application Packaging Project里完成PSF的集成:

  • 下载对应版本的Package Support Framework(PSF),取出你需要的WorkingDirectoryFixup.dll,以及PSF核心文件psflauncher.exe、psfruntime.dll
  • 右键点击打包项目 → 添加 → 现有项,把这几个文件加进去,然后在属性面板设置:
    • 内容:是
    • 复制到输出目录:始终复制
  • 修改Package.appxmanifest:
    1. 将应用入口点从原C#程序的exe路径,改成psflauncher.exe
    2. 添加psfconfig.json配置文件到项目(同样设置内容为“是”),写入规则指定原应用路径和工作目录修复逻辑,示例配置:
    {
      "applications": [
        {
          "id": "YourAppID",
          "executable": "YourOriginalApp.exe",
          "workingDirectory": "."
        }
      ],
      "processes": [
        {
          "executable": "YourOriginalApp.exe",
          "fixups": [
            {
              "dll": "WorkingDirectoryFixup.dll",
              "config": {
                "workingDirectory": "."
              }
            }
          ]
        }
      ]
    }
    

二、统一签名确保部署兼容性

  • 用企业内部CA颁发的代码签名证书,在打包项目的签名选项卡中配置签名,确保所有目标机器信任该证书(可通过组策略批量推送证书到受信任根目录)
  • 每次更新版本都用同一证书签名,保证后续自动更新的兼容性

三、部署到共享目录并启用自动更新

  • 把打包生成的MSIX包和自动安装文件(.appinstaller)上传到企业共享目录,给所有目标机器开放读取权限
  • 编辑.appinstaller文件的更新配置,指定共享目录为更新源,示例:
    <UpdateSettings>
      <OnLaunch HoursBetweenUpdateChecks="0" />
      <AutomaticBackgroundTask />
      <UpdateUri>\\YourFileServer\SharedApps\YourApp\</UpdateUri>
    </UpdateSettings>
    
  • 用户首次安装双击共享目录的.appinstaller即可,后续启动应用时会自动检查共享目录的差分更新,无需手动操作

关键说明

  • 全程无需手动修改已打包的MSIX,避免破坏签名和更新流程
  • 只要保持更新包用同一证书签名,MSIX的自动差分更新功能完全不受影响
  • WorkingDirectoryFixup.dll会强制把应用工作目录设为MSIX的安装根目录,彻底解决原程序依赖工作目录的崩溃问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 17:15:14