
如何快速构建并上架 Windows 右键菜单管理器多架构构建、Inno Setup 安装包与 winget/Scoop 完全指南【免费下载链接】ContextMenuMgrContext Menu Manager Plus 是一个强大的实用程序它可帮助您管理 Windows 上的右键菜单并避免第三方向你的右键菜单里塞屎项目地址: https://gitcode.com/PLFJY/ContextMenuMgrContext Menu Manager Plus是一款 Windows 右键菜单管理工具帮你把第三方软件塞进右键菜单的垃圾项清理干净。本文带你从源码构建、多架构发布、Inno Setup 安装包打包一路走到 winget / Scoop 包管理器上架看完即可独立完成一次完整的发布。 构建前置环境准备清单依赖用途检查方式.NET SDK发布前端 / 后端 / 托盘宿主dotnet --versionVisual Studio Build Tools含 C 工作负载编译原生 ProbeHost脚本自动探测 MSVC 工具链Windows SDK原生代码链接随 Build Tools 安装Inno Setup 6生成安装程序优先使用仓库内 Installer/Inno Setup 6/ISCC.exe见 Resolve-IsccPath脚本会先自检解决方案、四个工程与 Inno Setup 脚本是否齐全缺失会直接报错退出构建入口在 Scripts/Build-Target.ps1。 一条命令完成多架构发布构建由单一入口 Build-Target.ps1 驱动参数只有 4 个必填项pwsh Scripts/Build-Target.ps1 -Kind installer -Configuration Release -Platform win-x64 -DistributionMode self-contained-Kindinstaller安装包或portable绿色版。-Platformwin-x64/win-x86/win-arm64/anycpu覆盖 x64、x86 与 ARM64 设备。-DistributionModeself-contained内置运行时用户免装 .NET或framework-dependent体积更小。发布流程在 Publish-Application 中串联dotnet restore→dotnet publish前端、后端、TrayHost 三个 .NET 工程再按平台编译原生 ProbeHost最后校验产物完整性。多架构的关键细节安装包目标必须是具体平台anycpu会被拒绝Build-Target.ps1#L100-L103绿色版目前仅支持 framework-dependent anycpu。原生 ProbeHost 按平台自动补齐兼容架构x64 包附带 x86 版本arm64 包附带 x64 与 x86 版本映射表见 Get-ProbeHostArchitectureMap。每次编译后都会读取 PE 头校验机器类型x860x14C、x640x8664、arm640xAA64架构不符立即失败见 Test-NativeProbeHostArchitectureAfterBuild 与 Verify-ProbeHostArchitecture.ps1。 Inno Setup 安装包是怎么打出来的安装脚本为 Installer/build_Installer.iss构建时通过/D宏注入架构与模式参数宏说明MyArchitecturesAllowedx64→x64compatible、x86→x86compatible、arm64→arm64见 Get-InstallerArchitectureOptionsMyUseDotNetDependencyInstallerframework-dependent 时置 1安装器自动附带 .NET 依赖安装MyAppId固定安装器身份Stable/Beta 共用保证互斥升级安装器行为要点服务处理卸载时会静默sc stopsc delete停删 Windows 服务并兼容旧服务名见 build_Installer.iss#L112-L131。数据去留卸载时询问是否同时删除配置、日志与备份数据选否即保留见 build_Installer.iss#L133-L155。界面中简 / 英文 / 中繁三语言向导支持桌面快捷方式任务项。编译与产物命名在 Invoke-InstallerBuildTarget 中完成产物名形如ContextMenuMgrPlus-1.8.0-x64-self-contained-Setup.exeself-contained 模式还会顺带产出一份绿色版 zip。绿色版压缩包由 New-PortableArchive 生成命名规则为ContextMenuMgrPlus-版本-架构-模式-portable.zip。️ 版本规则Release / Beta 各有什么讲究版本由 Resolve-Version.ps1 从前端工程读取InformationalVersion解析Release正式版tag 形如v1.8.0发布名追加-Release后缀。Beta预发布自动拼接 Git 短哈希tag 形如v1.7.4-Betaabcdef0见 Get-BuildVersion。Beta 版本门禁Beta 基础版本号必须严格高于最新 Stable例如 Stable 已是 1.8.0 时1.8.0-beta会被 Test-BetaVersionGate.ps1 直接阻断。 winget 上架manifest 是怎么生成的完整机制见官方文档 docs/package-managers.md。触发方式包管理器发布 workflow 只响应release: published事件保证 manifest 一定指向已公开、可下载的 Release 资产并可用workflow_dispatch对指定 tag 做 dry-run。渠道设计Stable 与 Beta 使用不同 winget 标识符PLFJY.ContextMenuMgrPlus/PLFJY.ContextMenuMgrPlus.Beta但共用同一安装器 AppId互斥升级。渠道与 GitHub Release 类型严格一一对应Beta 不会自动转正。manifest 结构生成installer.yaml 主版本 manifest zh-CN/zh-TW/en-US三套 locale全部指向按架构区分的 self-contained 安装器。生成与校验分别由 New-WingetManifest.ps1 和 Test-WingetManifest.ps1 负责后者调用winget validate --ignore-warningswarning-only 结果不会误伤发布。提交策略PR 通过 partial clone sparse checkout 只物化目标版本目录确保单个 PR 只包含一个包版本目录干净利落合并进 winget-pkgs 并刷新索引后用户才能搜索到。 Scoop 上架按架构分发 渠道互斥Scoop manifest 由 New-ScoopManifest.ps1 生成按架构分发architecture字段分别写入64bit/32bit/arm64的 self-contained 绿色 zip 与 SHA256而非单一url/hash。渠道互斥Stable 与 Beta 使用不同 app namecontextmenumgrplus/contextmenumgrplus-beta并互相写入pre_install检查防止双渠道并存逻辑见 Get-PreInstallLines。数据持久化persist指向Data目录因两渠道 app name 不同数据目录天然隔离。用户侧安装命令scoop bucket add plfjy scoop-bucket 仓库地址 scoop install plfjy/contextmenumgrplus✅ 发布前自查清单先 dry-run手动运行发布 workflow输入已发布的 tag开启dry_runtrue它会真实下载资产、计算 SHA256、生成并验证全部 manifest但不产生任何外部副作用。检查 artifact下载package-manager-manifests-*核对release-metadata.json、release-assets.json、scoop/*.json、winget/*.yaml是否齐全且哈希匹配。Scoop 首次验证确认 manifest URL 指向真实 x64/x86/arm64 资产、SHA256 一致、bucket 提交更新了对应 json 文件。winget 开关确认 fork 仓库与 PR token 就绪后再开启自动 PR避免空跑失败。架构验证构建日志中每个 ProbeHost 都会打印DetectedPEMachine若出现架构不匹配错误先补齐对应架构的 MSVC 构建工具再重试。 小经验Scoop 走绿色 zip 按架构分 URLwinget 走按架构分安装器同一份 self-contained 发布产物可以同时喂饱两个渠道无需重复构建。结语掌握 Build-Target.ps1 的四参数模型与 docs/package-managers.md 的渠道规则你就拥有了 Context Menu Manager Plus 的完整发布能力一条命令出多架构产物Inno Setup 打包成专业安装器再让 winget / Scoop 自动完成 manifest 生成、校验与上架。动手试试吧【免费下载链接】ContextMenuMgrContext Menu Manager Plus 是一个强大的实用程序它可帮助您管理 Windows 上的右键菜单并避免第三方向你的右键菜单里塞屎项目地址: https://gitcode.com/PLFJY/ContextMenuMgr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考