UniGetUI 离线安装包制作完全指南4步搞定无网环境部署【免费下载链接】UniGetUIUniGetUI: The Graphical Interface for your package managers. Could be terribly described as a package manager manager to manage your package managers项目地址: https://gitcode.com/GitHub_Trending/wi/UniGetUIUniGetUI 是 WinGet、Scoop、Chocolatey 等包管理器的图形界面工具一套界面管好所有装包渠道。默认安装流程依赖在线拉取运行时组件内网或断网机器上很容易卡住。这篇文章带你从源码出发产出一个自包含一切依赖的 UniGetUI 离线安装包拿到无网机器上双击就能装、装完就能用。先弄清「离线」是怎么做到的整个思路拆开看其实就三层应用自包含src/Directory.Build.props里PublishSelfContainedtrue发布产物把 .NET 运行时一起打进unigetui_bin/目标机器不用单独装 .NET。安装包自包含Inno Setup 脚本 UniGetUI.iss 把整个产物目录、以及 VC 运行时、WebView2 等依赖的安装器全部压进一个 EXE。文件自检产物里附带的IntegrityTree.jsonSHA256 哈希表让应用启动时能核对自己有没有缺文件这正是离线部署最怕的问题。只要这三样齐了装到断网机器上就是一个纯本地过程。环境怎么备齐.NET 10 SDK 与 Inno Setup 6在一台Windows 10/11 64 位的联网机器上准备工具链这里就是未来唯一需要网络的环节.NET 10 SDK版本由 global.json 锁定10.0.103允许 rollForward装高版本 SDK 即可满足。Inno Setup 6只用它的命令行编译器ISCC.exe装在默认位置即可被构建脚本自动发现。克隆源码git clone https://gitcode.com/GitHub_Trending/wi/UniGetUI cd UniGetUI为什么要在联网机上做因为 Inno Setup 的依赖机制见 InstallerExtras/CodeDependencies.iss是在安装时才去下载 VC/WebView2——离线包要么提前把这些依赖装进目标系统要么安装时用开关跳过后面细说。构建产物怎么出自包含 publish 完整性树UniGetUI.iss的[Files]段只认一个目录仓库根目录下的unigetui_bin/。先把 Avalonia 主工程发布成 Windows x64 自包含产物再把输出挪进unigetui_bin/dotnet publish src/UniGetUI.Avalonia/UniGetUI.Avalonia.csproj -c Release -p:Platformx64 -r win-x64产物就位后生成完整性树pwsh scripts/generate-integrity-tree.ps1 -Path unigetui_bin这一步会递归计算每个文件的 SHA256 并写入unigetui_bin/IntegrityTree.json。做完的效果unigetui_bin/里既有UniGetUI.exe和全部运行时 DLL又有一份可被运行时IntegrityTester核对的哈希清单断网机启动应用时会用它自检文件完整性。打包命令一次跑通ISCC 与 iss 脚本要点打包前先看 UniGetUI.iss 里三处和离线强相关的配置心里有数再动手[Files]部署unigetui_bin\*全量文件外加一份安装包自身UniGetUI.Installer.exe用于日后免重装自修复。[Tasks]提供regularinstall常规安装写注册表、建快捷方式和portableinstall便携安装只往目录里放一个ForceUniGetUIMobile标记文件两种模式便携版适合 U 盘带走。SignToolazsign官方构建会数字签名本地构建没有证书打包前把它注释掉、并把SignedUninstaller改为no——scripts/build.ps1会自动完成这两处临时改写并恢复。然后一条命令出包ISCC.exe UniGetUI.iss /Ooutput或者偷懒让 scripts/build.ps1 一条龙跑完测试 → publish → 整理unigetui_bin/→ 刷新完整性树 → 找 ISCC 打包 → 输出 SHA256 校验和文件。它会自动禁用签名、自动定位ISCC.exe产物统一落在output/目录还附一份checksums.x64.txt方便你分发包时校验。离线依赖怎么补齐VC、WebView2 与 netcorecheckUniGetUI 本体自包含之后剩下的外部依赖只有三个处理方式各不相同依赖作用离线处理VC 2015-2022 运行时部分组件依赖的 C 运行时安装器默认在线补装离线机上要么预装要么安装时带/NoVCRedist跳过WebView2 运行时应用内网页内容渲染同上预装或安装时带/NoEdgeWebView跳过netcorecheck_x64.exe检测目标机 .NET 环境已随仓库放在 InstallerExtras/ 目录打包时自动附带无需额外处理依赖探测逻辑在 InstallerExtras/CodeDependencies.iss它先查注册表判断 VC 和 WebView2 是否已装已装则完全跳过下载。所以如果你的离线机提前用别的渠道装好这两个组件安装包全程零联网即可完成反之就用/NoVCRedist /NoEdgeWebView参数跳过接受目标机可能缺少对应运行时的风险。成果怎么验证断网装机实测拿到output/UniGetUI Installer.exe后建议在一台断网的虚拟机或真实内网机上走一遍核对产物用output/checksums.x64.txt里的 SHA256 值比对安装包确认拷贝过程没坏文件。常规安装运行安装包选「常规安装」装完启动 UniGetUI确认能列出 WinGet/Scoop 等已装包——这一步顺带验证了完整性树自检通过。便携安装另选一台机器装时勾选便携模式portableinstall它不写注册表、不建快捷方式目录整体拷走就能在任意机器运行是 U 盘分发场景的最优解。断网复验全程不插网线安装与启动均应无网络请求失败提示。常见坑与延伸阅读启动报缺文件 / 完整性校验失败unigetui_bin/里动过文件却没重新生成清单重跑一次scripts/generate-integrity-tree.ps1 -Path unigetui_bin再打包即可。ISCC 报错找不到签名工具确认SignTool行已注释、SignedUninstallerno别用官方签名配置打本地包。构建时找不到 ISCC说明 Inno Setup 6 没装或没装在默认路径装好后重跑或给build.ps1加-SkipInstaller先出 zip 再手动打包。想进一步理解安装器行为进程杀活、更新标记、自修复部署直接读 UniGetUI.iss 的[Code]段命令行与 IPC 能力可查 docs/CLI.md构建体系与发布约定的权威说明在 AGENTS.md。【免费下载链接】UniGetUIUniGetUI: The Graphical Interface for your package managers. Could be terribly described as a package manager manager to manage your package managers项目地址: https://gitcode.com/GitHub_Trending/wi/UniGetUI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考