Как заставить установщик QtIFW вызывать утилиту, поставляемую с установщиком?

Я планирую перенести существующий установщик на основе C++ на Qt Installer Framework. В существующем установщике есть несколько вещей, которые я бы не хотел менять или переопределять в настоящее время, например. разбор лицензионного ключа. Вместо этого я хотел бы повторно использовать часть существующего кода и создать из него маленькую (без графического интерфейса) утилиту, а затем вызывать ее по мере необходимости установщиком QtIFW.

Похоже, что installer.execute можно использовать для вызова внешней программы - но есть ли способ обратиться к программе, которая еще не находится в системе, а является частью установщика? Может быть, я мог бы сохранить программу для вызова в качестве ресурса и извлечь ее во временный каталог во время выполнения?


person Frerich Raabe    schedule 18.09.2015    source источник


Ответы (1)


Оказывается, этого можно добиться, поставив утилиту call в качестве ресурса. Затем ресурс можно «извлечь» во время выполнения, вызвав installer.performOperation с Copy (см. список операций), например:

installer.performOperation("Copy", ["://myutility.exe", "/tmp"]);

Это предполагает, что binarycreator был вызван с аргументом -r, который ссылается на файл XML. как:

<RCC>
    <qresource prefix="/">
        <file>myutility.exe</file>
    </qresource>
</RCC>
person Frerich Raabe    schedule 23.09.2015
comment
Привет, Как выполнить этот installer.performOperation в режиме с повышенными правами администратора - person user2301; 09.08.2018