使用Squirrel构建C#应用遇更新故障:无法升级至1.1.7版本求助
Squirrel更新失败问题排查方案
版本限制说明
Squirrel本身没有特殊的版本号限制,只要遵循SemVer语义化版本规范(格式为主版本.次版本.修订号,如1.1.7)即可,你的版本号格式是符合要求的,问题大概率出在Release构建或打包环节。
核心排查方向
- Release构建版本未同步:检查项目文件中的版本号是否已更新为1.1.7,同时查看Release输出目录下的主exe文件属性,确认文件版本、产品版本是否正确。Debug配置正常,说明代码逻辑没问题,大概率是Release构建时版本参数未传递到位。
- Squirrel打包参数错误:核对打包脚本中的版本参数,比如执行
Squirrel --releasify MyApp.exe -v 1.1.7时,确保版本号拼写无误。同时检查打包生成的Releases目录下的.nupkg文件,用压缩工具打开查看内部的nuspec文件,确认版本字段为1.1.7。 - 本地缓存残留:卸载后重装仍出现旧版本,是Squirrel本地缓存未清理导致的。手动删除以下路径:
C:\Users\<你的用户名>\AppData\Local\<应用名称>- 全局安装时,清理
C:\Program Files\<应用名称>和C:\ProgramData\Squirrel\<应用名称>
- 代码签名配置问题:如果Release构建启用了代码签名,而证书配置错误(如证书过期、未正确安装),Squirrel会校验失败并回退到旧版本。Debug通常不启用签名,所以不受影响,检查Release的签名设置是否正常。
- 服务器更新包异常:确认服务器上的Releases目录已上传完整的1.1.7版本文件(包括
.nupkg、Setup.exe等),且文件未损坏。可以手动下载服务器上的nupkg文件,验证内部程序版本是否正确。
内容的提问来源于stack exchange,提问作者Pranto
相关产品推荐
相关产品推荐

