首页/新闻资讯/正文详情

Squirrel.Windows 安装调试实战:用 Update.exe 命令行模拟安装与首次运行

发布时间:2026/9/26 23:43:51 来源:云帆数科 栏目:资讯中心
Squirrel.Windows 安装调试实战:用 Update.exe 命令行模拟安装与首次运行
开发工具【免费下载链接】Squirrel.WindowsAn installation and update framework for Windows desktop apps项目地址https://gitcode.com/gh_mirrors/sq/Squirrel.Windows点击查看免费下载Squirrel.Windows 是一个面向 Windows 桌面应用的安装与更新框架仓库根目录 README.md其安装流程由Setup.exe引导、Update.exe执行。当应用装不上或装完不启动时最有效的排查手段是绕过图形化引导直接在命令行里手动重放安装的每一步。本文围绕官方文档 debugging-installs.md 的调试方法结合仓库源码讲解两条核心命令--squirrel-install与--squirrel-firstrun的工作原理、适用前提与完整排查路径。核心思路把安装过程拆开手动执行文档给出的调试前提是安装失败时应用的文件其实已经通过Setup.exe落到了本机因为Setup.exe会先把Update.exe和最新版本包解压到用户目录再调用Update.exe完成安装所以问题通常出在后续的收尾步骤——创建快捷方式、写注册表、触发应用首次运行等。此时直接进入应用目录用Update.exe手动重放这些步骤即可定位问题C:\user\AppData\Local\MyApp Update.exe --squirrel-install 1.0.0 C:\user\AppData\Local\MyApp Update.exe --squirrel-firstrun第一条命令模拟安装完成后的收尾创建快捷方式后立即退出见 docs/using/debugging-installs.md。第二条命令模拟首次启动启动你的应用。两条命令都要求你的应用是Squirrel-aware的即在程序启动入口尽早调用SquirrelAwareApp.HandleEvents(...)见 SquirrelAwareApp.cs否则命令会被当作普通命令行参数处理什么都不会发生——这正是很多调试无反应案例的根因。命令背后的调用链源码级验证1.--squirrel-install version触发 onInitialInstallSquirrel 的收尾钩子由 UpdateManager.ApplyReleases.cs 中的invokePostInstall驱动。在真实安装Setup.exe→Update.exe --install流程中它会对每个 Squirrel-aware 可执行文件依次传入--squirrel-install 版本号你的应用通过SquirrelAwareApp.HandleEvents收到该参数后会执行你在onInitialInstall回调里写好的逻辑创建快捷方式、文件关联等然后调用Environment.Exit(0)退出SquirrelAwareApp.cs。手动执行Update.exe --squirrel-install 1.0.0等于直接重放这一步Squirrel 会扫描应用目录下的可执行文件找到 Squirrel-aware 的应用并运行它们。如果快捷方式没建出来问题几乎一定出在onInitialInstall回调内部比如路径写错、目录权限不足。2.--squirrel-firstrun触发 onFirstRun首次安装流程中Squirrel 在收尾完成后会以不等待的方式启动应用并传入--squirrel-firstrun见 UpdateManager.ApplyReleases.csvar firstRunParam isInitialInstall ? --squirrel-firstrun : ; squirrelApps .Select(exe new ProcessStartInfo(exe, firstRunParam) { WorkingDirectory Path.GetDirectoryName(exe) }) .ForEach(info Process.Start(info));在应用侧HandleEvents对--squirrel-firstrun的处理与其它钩子不同执行完onFirstRun回调后应用不退出而是继续正常启动SquirrelAwareApp.cs。因此文档建议在onFirstRun里做欢迎页之类的首次启动提示而主程序照常运行。手动执行Update.exe --squirrel-firstrun直接重放这一步用于验证应用能否被正确启动——如果这一步应用起不来问题出在应用自身如缺少依赖、配置损坏与 Squirrel 安装流程无关。3. 为什么路径必须是%LocalAppData%\MyAppSquirrel 的安装根目录固定为用户级应用数据目录%LocalAppData%\MyApp这是为了确保普通用户也有写入和执行权限。其目录结构为packages存放下载的 nupkg 包 按版本号命名的app-x.y.z应用目录见 install-process.md\%LocalAppData%\MyApp \packages MyApp-1.0.0.nupkg MyApp-1.0.1-delta.nupkg MyApp-1.0.1.nupkg \app-1.0.0 MyApp.exe \app-1.0.1 MyApp.exeUpdate.exe就放在这个根目录安装时由 Program.cs 负责拷贝调试时务必在这个目录下执行命令否则--squirrel-install找不到正确的应用上下文。完整排查路线图把文档的调试方法与源码行为结合推荐按以下顺序定位问题确认文件已落地检查%LocalAppData%\MyApp下是否存在Update.exe、app-1.0.0版本号对应与packages\RELEASES。若Setup.exe在解压阶段就失败SquirrelSetup.log会记录原因见下文日志。手动执行--squirrel-install 版本若返回码为 0 且快捷方式出现说明收尾逻辑正常若快捷方式缺失检查应用是否调用了SquirrelAwareApp.HandleEvents以及onInitialInstall回调是否抛异常。手动执行--squirrel-firstrun若应用能正常启动说明安装链路本身健康问题在真实安装时首启触发的环境差异如 UAC、杀毒软件拦截。查看日志Squirrel 会把Squirrel-动作.log写到应用目录卸载场景写到临时目录日志行格式为[日期] 级别: 消息见 Program.cs 的SetupLogLogger其中的异常堆栈通常是定位onInitialInstall内部错误的直接线索。调试命令与真实安装的关系手动执行的这两条命令与真实安装共享同一套收尾逻辑真实安装走的是 UpdateManager.ApplyReleases.cs 的invokePostInstall它内部为 Squirrel-aware 应用拼接的正是--squirrel-install version与--squirrel-firstrun参数。区别仅在于真实安装由Update.exe --install统一驱动且安装成功后快捷方式的创建发生在invokePostInstall里手动调试时你只重放钩子执行这一步跳过了解压、复制文件等前置动作。因此手动命令返回成功、但真实安装仍失败时问题几乎必然出在Setup.exe的前置阶段——此时应回到 install-process.md 描述的流程逐项核对 .NET Framework 检查、目录创建、Update.exe解压等步骤前置逻辑位于 winmain.cpp 与 UpdateRunner.cpp。注意事项与限制命令必须是 Squirrel-aware 应用HandleEvents未调用时Update.exe --squirrel-install会被当成普通参数命令静默成功但什么都不做从 SquirrelAwareApp.cs 可见参数数量不符或未命中--squirrel-*时直接返回。版本号要与目录对应--squirrel-install 1.0.0里的版本号应与你app-1.0.0目录一致它是钩子回调的入参ActionVersion用于应用自行判断当前版本。执行目录固定命令应在%LocalAppData%\MyAppUpdate.exe所在目录执行不要在其它目录调用。Windows 环境Squirrel 的完整安装/卸载/快捷方式能力面向 Windows调试命令同样以 Windows 为运行前提。参考文档调试安装 — 本文核心依据安装流程详解 —Setup.exe与Update.exe的分工更新流程详解 —--squirrel-updated等钩子触发的更新链路Squirrel 命令行参考 —Update.exe全部命令与选项SquirrelAwareApp.cs — 钩子分发的入口实现UpdateManager.ApplyReleases.cs —invokePostInstall收尾逻辑Program.cs —Update.exe的命令解析与日志实现赞分享开发工具【免费下载链接】Squirrel.WindowsAn installation and update framework for Windows desktop apps项目地址https://gitcode.com/gh_mirrors/sq/Squirrel.Windows点击查看免费下载相关推荐Squirrel.Windows 安装全流程指南Setup.exe 引导器、目录布局与首次运行Squirrel.Windows 安装全流程指南Setup.exe 引导器、目录布局与首次运行 本文是 Squirrel.Windows 快速入门指南Get开发工具如何安装 mise 并运行第一条工具命令完成首次使用如何安装 mise 并运行第一条工具命令完成首次使用 如果你刚接触到 mise一个管理开发工具、环境变量和任务运行器的 CLI要完成的目标是把 mis开发工具CLILivePortrait终极指南三步打造栩栩如生的人像动画LivePortrait终极指南三步打造栩栩如生的人像动画 LivePortrait是一款革命性的人像动画生成工具它能将静态肖像照片转化为生动的动画视频让人工智能计算机视觉媒体生成数字人创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

strands-agents Python SDK v1.13.0 技术解析:invocation_state 迁移、OTel 语义约定升级与工具层可靠性增强
strands-agents Python SDK v1.13.0 技术解析:invocation_state 迁移、OTel 语义约定升级与工具层可靠性增强

人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务 【免费下载链接】harness-sdk Build an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python & TypeScript - any model, any cloud. 项目地址: https://… · 2026/9/26 23:43:51

3招搞定网站后台管理系统管理员登录安全对比评测
3招搞定网站后台管理系统管理员登录安全对比评测

3招搞定网站后台管理系统管理员登录安全对比评测 网站做好了没人访问,这大概是很多刚上线站长的噩梦。但比没流量更让人心慌的,是后台被黑客撞库攻破,数据泄露甚至被植入恶意代码。很多人以为登录页只要有个输入框就行,却忽略了… · 2026/9/26 23:43:44

用 Spring Boot + Spring AI 接 MCP,我踩过的 6 个连接坑:TaoToken 统一 Key 配置实录
用 Spring Boot + Spring AI 接 MCP,我踩过的 6 个连接坑:TaoToken 统一 Key 配置实录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 23:43:38

软件开发工程师和前端开发工程师对比评测:告别拖稿,3天交付规范
软件开发工程师和前端开发工程师对比评测:告别拖稿,3天交付规范

软件开发工程师和前端开发工程师对比评测:告别拖稿,3天交付规范 改个需求建站公司拖一周,这大概是很多甲方最头疼的事。你只是想把首页的按钮颜色改一下,或者把导航栏的间距调整得紧凑点,对方却回复“排期满了,下个月再说”。这种体验太糟糕了。其实,… · 2026/9/27 0:26:58

公司网站在国外打开很慢使用cdn好还是国外租用服务器好从零搭建
公司网站在国外打开很慢使用cdn好还是国外租用服务器好从零搭建

3个实战案例告诉你:公司网站国外慢,用CDN还是租服务器 域名服务器搞不懂,是很多技术负责人在接手海外业务时最容易踩的坑。很多老板只问一句“为什么美国客户打开网页要转圈5秒”,下面的人就懵了:是带宽不够?是代码没优化?还是机房选错了?… · 2026/9/27 0:26:58

从人工问答到系统流水线:AI运营SOP搭建实战指南
从人工问答到系统流水线:AI运营SOP搭建实战指南

1. 从CtrlC/V到SOP流水线:同样是AI运营,差的不是工资是系统我见过太多做AI运营的朋友,每天的工作状态基本是:打开各种AI工具,输入问题,复制答案,粘贴到文档里,稍微改改就发布。一天下… · 2026/9/27 0:26:52

WordPress内容页边栏搭建完整流程:避坑与转化实战指南
WordPress内容页边栏搭建完整流程:避坑与转化实战指南

WordPress内容页边栏搭建完整流程:避坑与转化实战指南 刚接手一个WordPress项目,老板甩过来一句:“域名和服务器我买了,你看着办。” 这时候最头疼的不是代码,而是 域名服务器搞不懂 配置逻辑。 别急,今天不聊虚的,直接拆解… · 2026/9/27 0:26:52

网站公司不给ftp? 3步图解步骤拿回控制权
网站公司不给ftp? 3步图解步骤拿回控制权

网站公司不给ftp? 3步图解步骤拿回控制权 做网站这行十年,我见过太多设计师转前端的兄弟,一上来就被甲方或外包公司卡得死死的。最头疼的不是代码写不出来,而是网站公司不给ftp,连个改字的机会都没有。… · 2026/9/27 0:26:08

大网站怎样选域名:新手入门避坑指南,告别被黑焦虑
大网站怎样选域名:新手入门避坑指南,告别被黑焦虑

大网站怎样选域名:新手入门避坑指南,告别被黑焦虑 网站刚上线第二天,后台突然弹出一堆奇怪的广告弹窗,浏览器地址栏显示“不安全”,客户投诉说点进去全是博彩链接。这时候你慌不慌?这种网站被黑挂马不知道办什么的情况,是无数新手站长噩梦的起点。很多… · 2026/9/27 0:26:02

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码