首页
/ Electron-Builder 26.0.0版本中文件上传路径问题的分析与解决

Electron-Builder 26.0.0版本中文件上传路径问题的分析与解决

2025-05-15 13:53:43作者:廉皓灿Ida

在Electron-Builder 26.0.0-alpha.3版本中,开发团队发现了一个关于文件上传路径处理的bug。这个问题主要影响使用Azure Trusted Signing签名方式的Windows平台构建,表现为上传到GitHub等发布平台时,不带空格的文件名会被错误地添加完整路径前缀。

问题现象

在构建过程中,当使用26.0.0-alpha.3版本时,构建输出目录中的文件会出现以下情况:

  1. 带有空格的文件名(如"应用名称 版本号.msi")能够正常上传
  2. 不带空格的文件名(如"应用名称-版本号-win.zip")会被添加上完整的绝对路径前缀

例如,原本应该上传为"myapp-1.0.0-win.zip"的文件,实际上传为"D.a.myproject.myproject.dist.myapp-1.0.0-win.zip"。

问题排查

通过版本回溯测试,开发团队确定了问题出现的具体版本范围:

  • 25.1.8(稳定版):能正确处理不带空格的文件名,但无法处理带空格的文件名
  • 26.0.0-alpha.0至alpha.2:与25.1.8表现相同
  • 26.0.0-alpha.3:开始出现路径前缀问题

进一步测试发现,这个问题不仅限于Azure Trusted Signing签名方式,使用传统signtool签名时也会出现相同现象,说明问题出在更基础的发布逻辑部分,而非特定签名实现。

问题根源

经过代码审查,发现问题出在文件发布逻辑中路径处理的逻辑错误。在26.0.0-alpha.3版本中,文件上传时错误地将完整路径而非相对路径传递给了发布器,导致发布平台接收到了包含完整路径的文件名。

解决方案

开发团队迅速定位并修复了这个问题,主要修改点是确保在上传文件时始终使用正确的相对路径。修复后的版本26.0.0-alpha.4已经发布,完全解决了这个路径前缀问题。

对开发者的建议

  1. 如果遇到类似问题,建议升级到26.0.0-alpha.4或更高版本
  2. 对于使用Azure Trusted Signing的开发者,需要注意自动更新功能可能需要额外配置publisherName参数
  3. 在构建配置中检查文件名处理逻辑,特别是当文件名包含特殊字符(如空格)时

这个问题的快速发现和解决体现了Electron-Builder社区的高效协作,也提醒开发者在升级构建工具时要注意测试各种边界情况,特别是文件名处理这类看似简单但容易出错的细节。

登录后查看全文
热门项目推荐
相关项目推荐