准备工作
-
用QtCreator随便创建一个工程,Release导出;
用windeployqt命令(该命令在Qt5.12.2\5.12.2\msvc2017\bin\目录里)把QT运行库自动拷贝到目标程序目录;
这是最后的效果:
-
下载squirrel
https://github.com/Squirrel/Squirrel.Windows/releases
配置环境变量 -
下载NuGetPackageExplorer
https://github.com/NuGetPackageExplorer/NuGetPackageExplorer/releases
详细操作
解压NuGetPackageExplorer后在当前目录新建bin/Release目录,把qt导出的所有文件拷贝到该目录下;
运行NuGetPackageExplorer.exe:
-
Ctrl+N新建一个package
-
在右侧Package contents里右键鼠标选择Add Lib Folder
-
在新建的lib右键选择Add .NET folder -> v4.5
-
把bin/Release中的所有文件拖到net45中
-
Ctrl+S保存文件MyPackage.1.0.0.nupkg到任意文件夹,在该文件夹Ctrl+L,输入cmd打开命令行工具。输入Squirrel --releasify MyPackage.1.0.0.nupkg,稍等片刻就会编译成功。编译好的文件存放在Releases文件夹中;
-
运行Releases文件夹中的Setup.exe,会在AppData\Local目录生成MyPackage文件夹。如图:
-
把qt工程里的文字改为Version 1.0.1,重新打包。再次执行1,2,3,4,5步骤(第5步保存文件为MyPackage.1.0.1.nupkg),在Releases文件中会多出一个MyPackage-1.0.1-delta.nupkg增量文件。
-
搭建一个web服务器,我用的是apache。在服务器新建updates目录,把Releases文件中的RELEASES和MyPackage-1.0.1-delta.nupkg文件拷贝到服务器的updates目录下。
-
在客户端安装目录(AppData\Local\MyPackage)运行命令行,执行以下语句:update.exe --update http://127.0.0.1/updates/,新版本就会下载到本地。再次运行客户端后,就能看到新版本的效果了。