Qt 安装程序框架:maintenancetool --checkupdates flag returns 无
Qt Installer Framework: maintenancetool --checkupdates flag returns nothing
与 Qt 应用程序的在线安装程序捆绑在一起的维护工具可以 运行 无头地带有一个“--checkupdates”标志,returns 更新信息(如果可用)(参见 ).不幸的是,即使有可用的已知更新,我也无法让这个命令真正 return 任何东西。我可以从命令行启动维护工具并且更新可见,但尝试使用 --checkupdates 标志不会产生任何结果。
QProcess update;
update.setWorkingDirectory(QDir::currentPath());
update.start("maintenancetool --checkupdates");
// Wait until the maintenancetool is finished
update.waitForFinished();
// Read the output
QByteArray data = update.readAllStandardOutput();
如果删除 --checkupdates 标志,我可以获得此代码来打开维护工具,但即使有更新,数据也始终为空。如果我尝试 运行 命令行中的进程,它也不会产生任何结果,所以我认为这不是代码的问题。有任何想法吗?似乎没有很多关于此的信息。
虽然我不知道原因,但问题似乎是 --checkupdates
标志没有 return 任何数据。但是,它确实具有基于是否有可用更新的适当退出代码。我已经重写了我的应用程序以捕获退出代码并相应地启动(或不启动)维护工具。感觉像是一个 hack,但它确实有效。
如果没有可用的更新,维护工具将return变为空。在启动维护工具之前,我将结果发送到文本文件,如下所示:
@echo off
maintenancetool.exe --checkupdates > checkUpdate.txt
findstr /c:"updates" checkUpdate.txt
if %errorlevel% == 0 maintenancetool.exe --script=script.qs
与 Qt 应用程序的在线安装程序捆绑在一起的维护工具可以 运行 无头地带有一个“--checkupdates”标志,returns 更新信息(如果可用)(参见
QProcess update;
update.setWorkingDirectory(QDir::currentPath());
update.start("maintenancetool --checkupdates");
// Wait until the maintenancetool is finished
update.waitForFinished();
// Read the output
QByteArray data = update.readAllStandardOutput();
如果删除 --checkupdates 标志,我可以获得此代码来打开维护工具,但即使有更新,数据也始终为空。如果我尝试 运行 命令行中的进程,它也不会产生任何结果,所以我认为这不是代码的问题。有任何想法吗?似乎没有很多关于此的信息。
虽然我不知道原因,但问题似乎是 --checkupdates
标志没有 return 任何数据。但是,它确实具有基于是否有可用更新的适当退出代码。我已经重写了我的应用程序以捕获退出代码并相应地启动(或不启动)维护工具。感觉像是一个 hack,但它确实有效。
如果没有可用的更新,维护工具将return变为空。在启动维护工具之前,我将结果发送到文本文件,如下所示:
@echo off
maintenancetool.exe --checkupdates > checkUpdate.txt
findstr /c:"updates" checkUpdate.txt
if %errorlevel% == 0 maintenancetool.exe --script=script.qs