使用 Dumplings 函数
执行上下文
请使用 PowerShell 7.4 或更高版本(pwsh)运行这些模块函数。PackageModule 和 Core 不支持 Windows PowerShell 5.1。
Core 会在运行任务脚本前,加载 PackageModule 以及 Preference.yaml 中声明的 PowerShell 模块。请不要在 Tasks/*/Script.ps1 中添加 Import-Module 调用。
在独立的仓库 shell 中,请加载所需的外部模块和 PackageModule。
Import-Module PowerHTML, powershell-yaml -ErrorAction Stop
. .\Modules\PackageModule\Index.ps1
当旧的任务示例与当前元数据不一致时,请使用 Get-Command <名称> -Syntax 查看参数。函数可能依赖其他已加载的 PackageModule 文件,请直接复用它们,而非复制其实现。
正常导入时会复用实现模块。在开发过程中,使用 . .\Modules\PackageModule\Index.ps1 -Reload 重新加载已修改的源文件。使用 Copy-Object 进行数据复制,使用 Test-ObjectValueEqual 进行结构相等性判断。复制操作会保留日期、脚本块、显式 null 值和嵌套的空数组。不可释放的 .NET 资源无法被克隆。
函数分组
- 阅读 网络通信 了解 GitHub API 调用、URI 组合、重定向、请求头、响应解码以及内嵌 JSON 处理。
- 阅读 文件和归档 了解缓存下载、临时路径以及受限的归档提取。
- 阅读 内容与数据 了解文本标准化、HTML 文本投影、编码、INI/XML 转换、列表和时间转换。
- 阅读 更新源 了解调用方已获取的 Squirrel 和 electron-builder 源字符串。
- 阅读 浏览器访问 了解作用域受限的 Playwright 租约和分离的浏览器结果。
- 阅读 外部模块 了解 PowerHTML 和 powershell-yaml 的命令。
仅阅读当前操作所需的分组即可。使用 $analyze-winget-installer 获取特定家族的解析器 API,使用 $author-winget-manifest 处理清单字段,使用 $author-dumplings-task 管理任务生命周期和源配方。
使用规则
请复用共享的辅助函数,并遵守其所有权和清理约定。将 PackageTask 的安装程序下载注册到 $this.InstallerFiles。除非函数另有说明,否则独立调用方负责管理临时资源。
对于无版本包源,优先使用 PackageTask 的 CheckInstallerUpdates/CompleteInstallerUpdates 工作流,而非自行组合探测、哈希和发布分支。阅读 无版本任务约定 了解验证器、按条目覆盖、回调所有权和遗留状态映射。这些方法会自动注册下载并保留已验证的哈希证据。
保持浏览器租约简短并返回分离的值。在作用域受限的辅助函数返回后,请勿保留页面、定位器、响应或浏览器对象。切勿在主机上执行已下载的安装程序。