PowerShell 7.4.6 MSIXBundle 缺失问题排查3 条路线找回安装包【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell去官方发布渠道下载 PowerShell 7.4.6 时资源列表里躺着 msi、zip唯独没有 msixbundle。装 MSIX 的脚本直接 404自动化部署卡在这一步。这不是你网络的问题也不是缓存骗了你——7.4.6 这个版本的发布流水线恰好赶上一次大改MSIXBundle 这个产物在出厂环节被漏掉了。TL;DRPowerShell 7.4.6 MSIXBundle 缺失的 3 个结论这是什么问题7.4.62024-10-22 发布的 GitHub 发布页缺少.msixbundle安装包只发布了 msi 和 zip。MSIXBundle 可以理解成多架构合一的安装包装一次自动匹配 x64/arm64。一句话根因7.4.6 是一次打包流水线大改的发布升级 .NET SDK 8.0.403、重构 NuGet 源、清理 MSIX 缓存MSIX 构建环节在改动中失守产物没能上传到发布页。修复路径A升级到 7.4.7 并改去 Packages 渠道找包B从源码本地构建 msixWindows 上Start-PSPackage -Type msixC修自己团队的打包脚本参照官方流水线补上 MSIX 环节。先对症状谁会被这个坑绊住版本7.4.62024-10-22。它的 发布日志 几乎整页都是Build and Packaging Improvements本身就说明这是个流水线改动密集的发布。平台仅 Windows。Linux/macOS 根本没有 MSIX 这条产品线。渠道GitHub Release 页的 assets 列表。发布流水线改动后MSIX 阶段的产物上传出了问题页面上直接缺项。谁会踩坑写企业批量部署脚本、用Add-AppxPackage装机、或把 msixbundle 地址写死在 CI 里的人。用 msi/zip 的无感。它是怎么坏的3 个机制机制一流水线是总装车间MSIX 是最后下线的工件。7.4.6 的日志里能看到Delete the msix blob if its already there (#24353)这类缓存优化同期还升级了 SDK、重写了 NuGet 源。车间换设备、调流程的同时MSIX 这个工位恰好断了一次料——上游步骤比如从存储账户下载 makeappx 工具、签名一旦失败或条件不对bundle 就不生产了而发布页只展示实际存在的资产于是表现为缺失而不是报错。机制二货架悄悄换了位置。后面几个 7.4.x 维护版本的日志里有Fix MSIX artifact upload、Move MSIXBundle to Packages and Release to GitHub (#25516)等条目——MSIXBundle 的分发从 Release 资产挪到了 GitHub Packages 源。所以发布页找不到 bundle一半是事故一半是渠道迁移后的正常形态。7.4.7 的日志里那行Fix backport issues with release pipeline (#24835)就是这次事故的正向修复。机制三本地构建和官方打包是同一张菜谱不同厨房。仓库里打包 MSIX 的能力一直都在packaging.psm1 里的New-MSIXPackage底层就是 Windows 自带的 makeappxpack 方式压出单架构.msixStart-PSPackage -Type msix是统一入口。官方那条 msixbundle 只是多了一层把各架构 msix 捆成一个 bundle的流水线步骤。也就是说本地缺的不是能力而是那次流水线改动把官方产出卡住了。修复缺失的 MSIXBundle方案 A / B / C方案 A升级版本 换渠道找包适合谁不锁死 7.4.6、只求把 pwsh 装上去的绝大多数人。改什么升级到 7.4.7 及之后的版本找包时别只盯 Release 页同时看 GitHub Packages 渠道bundle 已迁往那边见上文机制二。怎么验证装完跑pwsh -c $PSVersionTable.PSVersion.ToString()确认版本Get-AppxPackage PowerShell能看到包即安装成功。方案 B从源码手动构建 msix适合谁必须锁定 7.4.6或想自己验证包到底能不能打出来的人。改什么不需要改仓库任何代码仓库只读只需要在 Windows 上按官方构建流程走一遍。构建和打包的完整说明见 Windows 构建文档 和 releasing 文档。git clone https://gitcode.com/GitHub_Trending/po/PowerShell cd PowerShell; git checkout v7.4.6 . .\build.psm1; Start-PSBuild -Configuration Release -Runtime win7-x64 . .\tools\packaging\packaging.psm1 Start-PSPackage -Type msix -Configuration Release -WindowsRuntime win7-x64怎么验证产物是单架构.msix不是 bundle但功能等价见避坑清单。Test-Path确认文件生成再Add-AppxPackage装一遍最后Get-AppxPackage PowerShell核对版本。注意 makeappx 是 Windows 专属工具打包这一步只能跑在 Windows 上。方案 C给自家打包脚本补 MSIX 环节适合谁有二次打包流水线、被这个问题波及到内部发布链的团队。改什么参照官方流水线的顺序补三件事——先 Release 模式构建、再 makeappx pack 出各架构 msix、需要多架构时再做 bundle别省签名环节仓库里有 Sign-Package.ps1 可参考。顺带检查 AppxManifest.xml 里TargetDeviceFamily的版本约束是否覆盖目标系统第 23 行它声明过低的 MaxVersionTested 会让新系统上的验证变挑剔。怎么验证流水线产物清单里能列出.msix仿照 msi.tests.ps1 的写法加一个安装冒烟测试装上→跑命令→卸载全绿即收工。避坑清单构建 MSIX 包前问自己的 5 个问题msix 和 msixbundle 是一个东西吗不是。bundle 是套娃里面装着各架构的 msix。本地手动构建只需单架构.msixAdd-AppxPackage一样能装别执着于非要造出 bundle 格式。为什么 Release 页就是没有 bundle渠道迁移#25516之后它主要在 Packages 源里。只刷 Release 页等于站错了货架。install-powershell.ps1 能帮我装 msix 吗不能。install-powershell.ps1 只有$UseMSI开关非 MSI 一律走 zipMSIX 得自己Add-AppxPackage。打包必须 Windows 吗打 msix 这步是makeappx 是 Windows 工具前面的 C# 构建本身可以跨平台但想一步到位还是 Windows 省事。本地复现 7.4.6 要用什么 SDK7.4.6 发布时把 .NET SDK 升到 8.0.403流水线问题正集中在这次大改上。本地复现时让 global.json 里的 SDK 版本和 tag 对齐别拿 2026 年的 SDK 去考古。一句话收束7.4.6 的 msixbundle 缺失 流水线大改期的产物上传事故 分发渠道迁移不是包本身做不出来。能升级就走方案 A锁版本再手动补包别在 Release 页上耗时间。【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考