如何在 qt 安装程序框架的卸载步骤中省略 component.addOperation 的撤消步骤?
How to omit undo step of component.addOperation during uninstall step in qt installer framework?
我有组件脚本,根据 Qt 文档 http://doc.qt.io/qtinstallerframework/operations.html,我在安装期间执行 mkdir 和 copydir 操作。在内部,每个操作都有一个包含安装程序指令的 DO 步骤和一个包含卸载程序指令的 UNDO 步骤。我希望安装程序在卸载期间不要执行撤消步骤。我尝试使用以下功能:
var path =installer.value("HomeDir") + "/AppData/Roaming/myfolder";
component.addOperation("Execute", "mkdir", path, "UNDOEXECUTE", "del", "/S", "/F", path);
component.addOperation("Execute", "cmd", "/C", "mkdir", path, "UNDOEXECUTE", "cmd ", "/C", "rmdir", "/S", /Q", path);
执行此操作会引发错误 "Could not start: 'mkdir my/path'(No program defined) No such file or directory"。是否有任何解决方法可以不执行 addOperation 的撤消操作?
您不需要为每个操作都提供 UNDO。
有一些预定义的操作,您可以直接使用它们,如下所示
component.addOperation("Mkdir", path);
或
component.addOperation("Rmdir", path);
或者,如果您根本不想执行 UNDO 操作,请使用以下方法执行相同的操作
(对于Windows OS)
component.addOperation("Execute", "cmd", "/C", "mkdir " + path);
(对于Linux OS)
component.addOperation("Execute", "/bin/sh", "-c", "mkdir " + path);
我有组件脚本,根据 Qt 文档 http://doc.qt.io/qtinstallerframework/operations.html,我在安装期间执行 mkdir 和 copydir 操作。在内部,每个操作都有一个包含安装程序指令的 DO 步骤和一个包含卸载程序指令的 UNDO 步骤。我希望安装程序在卸载期间不要执行撤消步骤。我尝试使用以下功能:
var path =installer.value("HomeDir") + "/AppData/Roaming/myfolder";
component.addOperation("Execute", "mkdir", path, "UNDOEXECUTE", "del", "/S", "/F", path);
component.addOperation("Execute", "cmd", "/C", "mkdir", path, "UNDOEXECUTE", "cmd ", "/C", "rmdir", "/S", /Q", path);
执行此操作会引发错误 "Could not start: 'mkdir my/path'(No program defined) No such file or directory"。是否有任何解决方法可以不执行 addOperation 的撤消操作?
您不需要为每个操作都提供 UNDO。
有一些预定义的操作,您可以直接使用它们,如下所示
component.addOperation("Mkdir", path);
或
component.addOperation("Rmdir", path);
或者,如果您根本不想执行 UNDO 操作,请使用以下方法执行相同的操作
(对于Windows OS)
component.addOperation("Execute", "cmd", "/C", "mkdir " + path);
(对于Linux OS)
component.addOperation("Execute", "/bin/sh", "-c", "mkdir " + path);