【问题标题】:If file is not overwritten then quit installer如果文件未被覆盖,则退出安装程序
【发布时间】:2011-08-24 21:33:03
【问题描述】:

我正在使用:

; Set output path to the installation directory.
SetOutPath $INSTDIR\

SetOverwrite on

; Put file there
File "ACC\*.APP"

要覆盖一个文件,但是如果文件不能被覆盖,那么我希望安装程序退出,如何做到这一点?

是否需要使用错误标志值?但是怎么做呢?

【问题讨论】:

    标签: file installation nsis overwrite


    【解决方案1】:

    File 命令设置错误标志 如果覆盖模式设置为“尝试”并且 该文件无法被覆盖,或 如果覆盖模式设置为“开” 并且文件无法被覆盖 并且用户选择忽略

    !include LogicLib.nsh
    Section
    ClearErrors
    SetOverwrite try
    SetOutPath $INSTDIR
    File "ACC\*.APP"
    ${If} ${Errors}
      Quit
    ${EndIf}
    SectionEnd
    

    【讨论】:

    • 先生,我可以检查一下文件是否打开了吗?
    • SIR,还有,不能覆盖文件时出现的错误对话框,能不能绕过直接退出安装程序。我不想显示该对话框,也就是说,我不希望用户能够按 Abort、Retry 或 Ignore 按钮,但是当覆盖失败时,会出现一个消息框,说,失败,然后退出
    • @sqlchild: 使用“SetOverwrite try”
    • 如果我指定“try”,那么它会尝试覆盖,但我不想让它尝试,我只想让它不说什么就退出。实际上,就我而言,我想要这样,当软件运行时,如果用户运行安装程序来更新软件,那么它就会退出,因为软件是打开的。
    • 先生,如果在 SetOverwrite 中使用“on”,则可能会绕过错误对话框
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    相关资源
    最近更新 更多