installForge打包记

在一个python小项目中完成windows下exe程序创建后,需要将其打包成安装包,之前因为这个需求并不多所以一直没做,直到看到https://www.pythonguis.com/tutorials/packaging-pyqt5-pyside2-applications-windows-pyinstaller/文档的介绍后,发现一个超好用的开源工具,于是尝试了一下,首先进行设置如下:

1、总体General设置

2、setup设置

需要注意的是,这里使用工具栏按钮添加项目文件时可以批量添加,但文件夹却只能一个个添加,但新版installForge可以直接拖动项目文件及文件夹到这个界面,这个确实人性化很多,另外添加文件时不要把exe项目所在目录添加进去,比如../dist/myapp,而是进入到myapp目录后,添加里面的所有需要的文件及文件夹。安装位置设置可以使用默认设置,但默认的<ProgramFiles>对应的是windows64位系统下的C:\Program Files (x86)这个目录,想要安装到C:\Program Files目录下就要把参数改为<ProgramFilesX64>。

卸载设置只需要点击Uninstallation菜单,并勾选Include Uninstaller的checkbox就行了。

 

3、Dialogs设置

安装软件启动前的欢迎画面

 但是我测试发现,这个画面是整个屏幕全屏显示,有些让人莫名其妙,所以就不勾选了。

Finish菜单设置

 这个设置可以让你在安装操作完成后点击打开你的应用程序,nice,都是我们通常想要的。

4、System设置

快捷方式设置

 下面的创建桌面快捷方式和创建开始菜单快捷方式貌似只有一个生效。

5、build设置

 这里的图标是安装包和卸载程序的icon,压缩方式用默认的LZMA时无法进行build,不知道什么原因,改成Deflare就可以了。

所有设置完成后点击工具栏的build按钮就可以进行打包了,打包完成自动进行安装,安装完成自动打开软件,一切顺利,但是我发现了设置选项卡下面有一个Visual Update Express菜单,这个是用来进行软件版本管理的,在这里碰到了麻烦:

 这个升级脚本安装文档说明如下:

releases{
1.0
1.1
}

release:1.0{

}

release:1.1{
DownloadFile:MyProgram.exe,
DownloadFile:Builder.exe,bin
}

于是我就按照文档说明在centos服务器上创建了updatescript.ini脚本文件,及Updates文件夹并上传了新版的主程序文件app.exe,并用flask在centos系统上搭建了服务端,用flask的send_from_directory功能做了脚本接口:

@blueprint.route('/update/<path:product_path>', methods=['GET', 'POST'])
def update(product_path):
    file_path = op.join(CONFIG_CLIENT_DIR, product_path)
    try:
        if op.exists(file_path):
            file_dir, file_name = op.split(file_path)
            return send_from_directory(file_dir, filename=file_name, as_attachment=True)
        else:
            return ''
    except Exception as e:
        return ''

但是在打开更新程序时出现了下载大小为0字节的现象,而且完成更新后程序依然是老版本,实际就是更新失败了

 查看文档及社区讨论都未找到相关说明,于是抓包更新程序,发现更新程序调用了两个接口:https://xxxx/Updates/和https://xxx/updatescript.ini,于是猜想无法下载更新文件的原因是使用flask的send_from_directory方法无法实现下载资源目录的浏览

 于是干脆改用nginx的静态资源目录共享功能实现了上述目录浏览及文件下载功能。

然而,重新打包后,更新程序依然无法下载更新文件,不断尝试后发现原因在于

我的updatescript.ini脚本的格式问题:

 上图中红色选框里的空格要去掉。不明白为什么这个ini脚本要用这种格式,也不知道应该怎么用程序读取这个文件,有谁知道欢迎留言讨论。

 至此,重新测试更新程序终于正常下载并更新版本。

 有时候踩坑也是好事,可以多学点东西。

参考文档: https://installforge.net/support1/docs/setting-up-visual-update-express/

posted @ 2024-01-29 11:34  超快排华哥  阅读(867)  评论(0)    收藏  举报