如何让 QtIFW 安装程序调用安装程序附带的实用程序?
How can I make a QtIFW installer call a utility shipped with the installer?
我正在考虑将现有的基于 C++ 的安装程序移植到 Qt Installer Framework。现有安装程序中有一些我现在不想更改或重新实现的东西,例如解析许可证密钥。相反,我想重用一些现有代码并从中构建一个小型(无 GUI)实用程序,然后让 QtIFW 安装程序根据需要调用它。
看来 installer.execute
可用于调用外部程序 - 但有没有办法找到一个尚未在系统上但属于安装程序一部分的程序?也许我可以将要调用的程序存储为资源并在运行时将其解压缩到临时目录?
事实证明,这可以通过将实用程序作为资源来调用来实现。然后资源可以在运行时通过调用 installer.performOperation
function with Copy
(see the list of operations) 为 "extracted",如:
installer.performOperation("Copy", ["://myutility.exe", "/tmp"]);
这假定 binarycreator
是使用 -r
参数调用的,该参数引用 XML 文件,例如:
<RCC>
<qresource prefix="/">
<file>myutility.exe</file>
</qresource>
</RCC>
我正在考虑将现有的基于 C++ 的安装程序移植到 Qt Installer Framework。现有安装程序中有一些我现在不想更改或重新实现的东西,例如解析许可证密钥。相反,我想重用一些现有代码并从中构建一个小型(无 GUI)实用程序,然后让 QtIFW 安装程序根据需要调用它。
看来 installer.execute
可用于调用外部程序 - 但有没有办法找到一个尚未在系统上但属于安装程序一部分的程序?也许我可以将要调用的程序存储为资源并在运行时将其解压缩到临时目录?
事实证明,这可以通过将实用程序作为资源来调用来实现。然后资源可以在运行时通过调用 installer.performOperation
function with Copy
(see the list of operations) 为 "extracted",如:
installer.performOperation("Copy", ["://myutility.exe", "/tmp"]);
这假定 binarycreator
是使用 -r
参数调用的,该参数引用 XML 文件,例如:
<RCC>
<qresource prefix="/">
<file>myutility.exe</file>
</qresource>
</RCC>