【问题标题】:UWP: how to install side-loaded app when AppX Installer is not installed on the machineUWP:如何在机器上未安装 AppX Installer 时安装侧载应用程序
【发布时间】:2022-09-27 17:22:51
【问题描述】:
我需要在无法访问 Microsoft Store 的计算机上安装 UWP 应用程序(侧载)。
这台机器甚至没有 AppX 安装程序应用程序,因此我无法安装任何这些文件(位于侧面加载应用程序的安装包中):
所以,两个问题:
- 是否有可以下载和安装此 AppX 安装程序应用程序的地方(显然不是来自 MS Store)?
- 我可以手动重新创建安装过程,或者解压缩 .msix 的内容吗?如何为 LocalSTate 等创建正确的文件夹层次结构?
标签:
uwp
windows-store-apps
msix
installation-package
【解决方案1】:
- appx/msix 安装程序现在应该包含在操作系统中。 PC 运行的是哪个版本的 Windows 10(我假设)?
如果它是旧的,您可以推送操作系统更新吗?经过快速的网络搜索后,即使没有互联网,您似乎也应该能够安装操作系统更新。
- 不,你不能。索引,appx/msix 包基本上是一个智能 ZIP,它在安装时提取到一个特殊的操作系统位置,但有一些警告。
您不能手动将任何文件放在 WindowsApps 系统文件夹中,只有操作系统可以在该位置写入。
即使您以某种方式破解操作系统并设法在 WindowsApps 文件夹中添加文件,操作系统也很可能无法正确集成您的 UWP 应用程序,因为它不知道如何从提取的 zip(appx/msix 包)中解释 AppXManifest。 UWP 应用在虚拟容器内运行,根据包中 AppxManifest 中的信息进行配置。如果操作系统太旧,它将不知道如何“读取”和处理该清单,因此您的应用程序很可能无法运行。
【解决方案2】:
您应该能够通过 Powershell 在所有可以运行打包应用程序的机器上进行安装:
Add-AppxPackage -Path "C:\Users\user1\Desktop\MyApp.msix"
查看更多parameters here。
一旦您确认这是有效的,对于如何以普通用户理解的方式运行该命令,您有许多不同的选择。
例如,您可以创建一个运行该命令的 Inno Setup 安装程序,如下所示:
Filename: "powershell.exe"; Parameters: \
"-ExecutionPolicy Bypass -Command Add-AppxPackage '{tmp}\MyApp.msixbundle'"; \
StatusMsg: "Installing application...."; \
WorkingDir: {app}; Flags: runhidden