【问题标题】:How to omit undo step of component.addOperation during uninstall step in qt installer framework?如何在qt安装程序框架的卸载步骤中省略component.addOperation的撤消步骤?
【发布时间】:2018-06-21 15:43:46
【问题描述】:

我有组件脚本,我在安装期间按照 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 的撤消操作?

【问题讨论】:

    标签: qt qt-installer


    【解决方案1】:

    您不需要为每个操作都提供 UNDO。

    有一些预定义的操作,你可以直接使用如下

    component.addOperation("Mkdir", path);

    component.addOperation("Rmdir", path);

    或者如果您根本不想进行 UNDO 操作,请使用下面的方法来做同样的事情

    (适用于 Windows 操作系统)

    component.addOperation("执行", "cmd", "/C", "mkdir" + 路径);

    (适用于 Linux 操作系统)

    component.addOperation("执行", "/bin/sh", "-c", "mkdir" + 路径);

    【讨论】:

    • 我不希望安装程序删除我创建的文件夹。如果我这样做 component.addOperation("Mkdir", path);安装程序自动删除
    • 我使用的是 Windows 10
    • 如果您使用 cmd 执行 mkdir,您应该在 mkdir 命令和带有适当间距的路径之间使用 + 而不是逗号
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 2011-08-12
    • 2019-06-25
    • 2011-05-04
    • 1970-01-01
    • 2017-04-02
    • 2014-03-13
    相关资源
    最近更新 更多