解决PowerToys升级卸载缺少MSI文件难题:使用WiX Toolset提取核心安装包

一、 问题定位

在这里插入图片描述
在使用PowerToys的过程中,当您尝试升级或卸载现有版本时,可能会遇到一个阻碍流程的错误弹窗。系统提示“The feature you are trying to use is on a network resource that is unavailable.”,并要求提供一个特定版本的 .msi 安装文件(例如 PowerToysUserSetup-0.89.0-x64.msi),但该文件在指定的缓存路径(如 C:\Users\wsy\AppData\Local\Package Cache\)中已无法找到。

二、 原理分析

此问题的根源在于Windows Installer在执行安装、升级或卸载操作时,需要依赖初次安装时缓存的 .msi 文件。如果这个缓存文件因为磁盘清理、手动删除或其他原因而丢失,Installer便无法继续执行。

PowerToys的 .exe 安装程序实际上是一个捆绑包 (Bundle),它内部封装了真正的 .msi 安装包以及其他依赖项。因此,我们无法直接使用 .exe 文件来响应系统的提示,而必须从中提取出所需的核心 .msi 文件。

三、 解决方案

核心解决方案是从原始的 .exe 安装包中提取出Windows Installer所需的 .msi 文件。这需要借助一个专业的Windows安装包制作工具集——WiX Toolset

WiX Toolset中的 dark.exe 工具是一个反编译器 (decompiler),它能够解析 .msi.exe 安装包的结构,并将其中包含的文件和配置信息提取出来。

操作前置条件:

  1. 下载并安装WiX Toolset:建议选择 v3 版本以匹配原文操作。
  2. 准备PowerToys的.exe安装包:找到与您系统上安装版本相匹配的 .exe 安装文件。如果已删除,需从PowerToys的官方GitHub发布页面重新下载。

四、 实践案例 (以PowerToys 0.89.0为例)

以下步骤将从 PowerToysUserSetup-0.89.0-x64.exe 中提取 .msi 文件。

打开PowerShell或命令提示符(CMD)。执行以下命令,进入 WiX Toolset的bin目录,即dark.exe 所在的目录。

# $Env:WIX 是WiX Toolset安装时设置的环境变量,指向其安装根目录
cd $Env:WIX\"bin"

使用 dark.exe-x 参数来解压安装包。命令格式如下:

# 语法: dark.exe -x [输出文件夹路径] [目标.exe安装包路径]
dark.exe -x OUTPUT_FOLDER INSTALLER_PATH

示例:
假设我们将提取的文件存放在 E:\Desktop\extractedPath 目录下,且PowerToys的安装包位于 E:\Desktop\

# 请将下面的路径替换为您自己的实际路径
.\dark.exe -x "E:\Desktop\extractedPath" "E:\Desktop\PowerToysUserSetup-0.89.0-x64.exe"
  • -x: dark.exe 的解压参数。
  • "E:\Desktop\extractedPath": 指定解压后文件的存放路径,请确保该文件夹已创建或有权限创建。
  • "E:\Desktop\PowerToysUserSetup-0.89.0-x64.exe": 需要被解压的PowerToys安装包的完整路径。

命令执行成功后,在您指定的输出文件夹(本例中为 E:\Desktop\extractedPath)下,会生成 AttachedContainerUX 两个子文件夹。

我们所需的目标 .msi 文件就位于 AttachedContainer 文件夹内。
在这里插入图片描述

现在,回到最初的错误弹窗,点击“Browse…”按钮,然后导航到 AttachedContainer 文件夹,选中刚刚提取出的 .msi 文件。此时,系统会识别该文件,安装或卸载程序将得以正常继续。


五、参考文献

  1. Extracting the MSI from the bundle
  2. PowerToys 无法安装、无法卸载解决办法 提示MSI文件缺少
  3. PowerToys Uninstall Requesting powertoyssetup-0.79.0x64.msi, Unable To Locate On Local Machine
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只云卷云舒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值