MSIX 侧载应用在更新后启动缓慢
Posted
技术标签:
【中文标题】MSIX 侧载应用在更新后启动缓慢【英文标题】:MSIX sideloaded app is slow to start after update 【发布时间】:2021-11-30 20:40:52 【问题描述】:我正在使用 MSIX 打包来部署 .NET 桌面应用程序。该应用由 Azure Pipelines 构建,安装包部署到文件服务器上的共享文件夹中。
当我运行 .appinstaller 时,对话框会打开并按应有的方式应用更新。但随后对话框关闭,超过 1 分钟没有任何反应。然后应用程序启动。
测试 1 - 普通用户
查看事件日志,首先有这个警告:
应用清单验证警告:已声明命名空间 http://schemas.microsoft.com/developer/appx/2015/build 是 不适用,在清单处理过程中将被忽略。
然后是几条类似的消息
错误 0x5:正在删除文件 \?\C:\Program 文件\WindowsApps\已删除\8b7d5c25-92aa-4962-9e74-93b9685ce2ca-test_2021.1005.1225.1455_x64__002e9dkagpm7g28acfe13-edc2-4d9d-8a69-d5d9687e0573\MyApp\MyApp.exe 失败了。
1 分钟后出现此警告:
警告:还有 129 个文件无法删除 在文件夹 \?\C:\Program Files\WindowsApps\Deleted 下。
似乎该进程尝试并重试删除旧文件超过 1 分钟,然后放弃。
如何允许 MSIX 在不授予管理员权限的情况下删除文件?
测试 2 - 管理员用户
我做了第二次测试,这次是在另一台机器上,并以管理员身份登录。
更新对话框完成更新并在 12 秒后关闭。
然后 5 分钟内什么都没有发生(!)
我相信我单击了“开始”按钮或其他东西,然后应用程序突然启动了。
检查日志未显示有关文件删除失败的任何警告。
只有这个警告:
应用清单验证警告:已声明命名空间 http://schemas.microsoft.com/developer/appx/2015/build 是 不适用,在清单处理过程中将被忽略。
在这 5 分钟内,根本没有任何日志条目。
这些是最后 2 个日志条目,在 5 分钟后生成:
14-10-2021 10:10:12
UpdateUsingAppInstallerOperation 对带有 main 的包的操作 范围 8b7d5c25-92aa-4962-9e74-93b9685ce2ca-test_2021.1013.1518.1578_x64__002e9dkagpm7g 和选项 0 和 0。请参阅 http://go.microsoft.com/fwlink/?LinkId=235160 寻求帮助诊断应用部署问题。
14-10-2021 10:10:13
已为 bundle 成功创建了 bundle 流式阅读器 8b7d5c25-92aa-4962-9e74-93b9685ce2ca-test_2021.1013.1518.1578_neutral_~_002e9dkagpm7g.开始部署捆绑流式阅读器已创建
结论
查看任务管理器和 ProcMon,我可以看到应用程序在更新对话框关闭后立即启动。但是,该进程是一个后台进程,对用户是不可见的。
在谷歌搜索时,我发现了这些描述相同问题的帖子: https://techcommunity.microsoft.com/t5/msix-deployment/app-does-not-launch-immediately-after-installation-but-after-a/m-p/1972161
https://techcommunity.microsoft.com/t5/msix-deployment/winforms-exe-in-msix-package-does-not-startup-after-auto-update/m-p/965978
【问题讨论】:
【参考方案1】:您不能授予它管理员权限。 MSIX 安装始终按用户运行。
这听起来像是与机器相关的问题。您是否在其他机器上重现了相同的行为(如果您无法访问单独的物理机器,请尝试使用虚拟机)。
【讨论】:
是的,我们网络上的多台机器都有这个问题。 查看事件查看器下的日志。也许这些会给我们一些提示。我以前从未见过这个 @BogdanMitrache 刚刚在我的应用程序中遇到了这个问题 - 客户报告并在我的机器上复制了它。阅读链接后,我认为这是 AppInstaller 中新引入的错误。【参考方案2】:我从来没有找到解决方案。我的解决方法是通过不包含ShowPrompt="true"
来关闭更新对话框。
即使有更新,应用程序似乎也会正常启动。
但是,有一个新问题 - 用户在发布更新后第一次启动应用程序时,不会发生自动更新。它仅在应用程序第二次启动时应用。这显然是设计使然...
【讨论】:
以上是关于MSIX 侧载应用在更新后启动缓慢的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 Worklight 6.1.0.01 升级后 Eclipse 启动缓慢?