☰
PowerShell 7.4.6 缺失 MSIXBundle 怎么修:分步排障完整指南
2026/10/27 0:51:29 网站建设 项目流程

PowerShell 7.4.6 缺失 MSIXBundle 怎么修:分步排障完整指南

【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell

PowerShell 7.4.6 在 Windows 上缺了 MSIXBundle(Windows 的现代应用打包格式)安装包,就是本文要解决的“PowerShell MSIXBundle 缺失”问题。按自查、定位、手动构建安装的顺序走完,你能把包拿回来。

📋 第一幕|快速自查:先确认你是否中招

  • 发布页缺资产:7.4.6 官方发布里只有 .msi 和 .zip,搜不到 .msixbundle。最快自查:在 7.4.6 发布资产列表里搜 “msixbundle”,为空即中招。
  • 包版本卡住:Windows 商店或 vPack 通道的 PowerShell 停在 7.4.5 不再更新。自查:运行Get-AppxPackage -Name Microsoft.PowerShell | Select Version看注册版本。
  • 安装脚本下不到 msixbundle:指定版本安装时,脚本拼出来的下载链接永远是 .zip。自查:看 tools/install-powershell.ps1 第 279 行的 Windows 分支。

命中任意一条,这篇指南就是为你写的;目标版本已在 7.4.7 之后的,直接跳第三幕。

🔍 第二幕|定位原因:包为什么会丢

构建层(打包流水线)。现象:7.4.6 流水线在升级 .NET SDK 8.0.403 的同时改了 MSIX 阶段,多出一条缓存清理规则。类比:这相当于在装配线末端加了一道“已有成品就别重做”的质检,结果新规则把刚打好的 MSIXBundle 也删了。证据:CHANGELOG/7.4.md 第 552 行记录 “Delete the msix blob if it's already there (#24353)”。

配置层(打包清单)。现象:打包工具做版本校验时自动跳过 MSIXBundle 生成。类比:清单像一张“体检证明”,上面写的已测最高系统版本太旧,新系统就认定它没验过。证据:assets/AppxManifest.xml第 23 行MaxVersionTested="10.0.18362.0",只覆盖到 Windows 10 21H2。

脚本层(安装脚本)。现象:Windows 安装只有 MSI 和 ZIP 两个分支,msixbundle 无处可下。类比:插座只有两孔,第三根插头根本插不进去。证据:tools/install-powershell.ps1 第 279–284 行:

if ($IsWinEnv) { if ($UseMSI) { $packageName = "PowerShell-${release}-win-${architecture}.msi" } else { $packageName = "PowerShell-${release}-win-${architecture}.zip" } }

🔧 第三幕|动手修复:三步拿回安装包

步骤 1:升级到修复版。查看文件:CHANGELOG/7.4.md;看哪里:第 498 行 “Fix backport issues with release pipeline (#24835)”,这是 7.4.7 对流水线的修复记录;达成效果:官方渠道恢复 MSIXBundle 资产,升级即解决。一条 winget 命令完成:

winget upgrade --id Microsoft.PowerShell

步骤 2:核对打包配置。查看文件:assets/AppxManifest.xml;看哪里:第 23 行TargetDeviceFamily,确认MaxVersionTested是否仍为旧值 10.0.18362.0;达成效果:弄清是哪个版本约束让打包工具跳过,手动重新打包时先更新这个参数。

步骤 3:手动构建并安装 msixbundle。坚持用 7.4.6 的话,先产出 win-x64 的 publish 目录,再在装有 Windows SDK 的机器上打包、安装。makeappx 负责生成捆绑包,Add-AppxPackage 负责装上系统:

makeappx bundle /d .\win-x64\publish\ /p .\PowerShell-7.4.6-win-x64.msixbundle Add-AppxPackage -Path .\PowerShell-7.4.6-win-x64.msixbundle

✅ 第四幕|验证生效:怎么确认修好了

  • 资产核对:官方 7.4.7 发布资产列表里出现PowerShell-7.4.7-win-x64.msixbundle。
  • 版本核对:运行pwsh -NoProfile -Command '$PSVersionTable.PSVersion.ToString()',期望输出以 7.4.7 开头。
  • 注册核对:运行Get-AppxPackage -Name Microsoft.PowerShell,Version 字段不低于 7.4.7,InstallLocation 指向新版本目录。

🧱 第五幕|防再犯:把坑填上

  • 给 CI 加打包断言:在 test/packaging/windows/ 增加“发布资产必须包含 msixbundle”的检查,缺包直接构建失败。
  • changelog 打包条目当红线:CHANGELOG/7.4.md 里每条 MSIX 与流水线变更,评审时必须附测试用例。
  • 依赖定期扫描:用 tools/ComponentGovernance/ComponentGovernance.psm1 巡检,提前发现 SDK 升级带来的不兼容。
  • 文档沉淀排查步骤:把 MSIXBundle 构建与常见坑写进 docs/building/windows-core.md,下一个人能自助解决。

构建环境与打包细节见 docs/building/windows-core.md;官方版本修复记录以 CHANGELOG 为准,等不及的话从第三幕的手动构建开始。

【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询