使用NSIS卸载以前的Wix安装程序时需要更长的时间,应用程序标题栏显示“无响应”

问题描述 投票:0回答:1

我将我的软件从Wix安装程序迁移到NSIS。安装新版本的软件后,我首先需要卸载以前的Wix软件包(如果存在)。

从NSIS安装程序,在“欢迎”屏幕中单击“下一步”时,我正在检查以前的Wix包,如果它存在则卸载它。以下是我的代码片段:

!define MUI_PAGE_CUSTOMFUNCTION_LEAVE RemovePrevVerFunction

!insertmacro MUI_PAGE_WELCOME

!insertmacro MUI_LANGUAGE "English"

Function RemovePrevVerFunction
ReadRegStr $R0 HKLM "SOFTWARE\EMR\3.01.00" "InstallPath"
${If} $R0 != ""
MessageBox MB_OKCANCEL "EMR 3.01.00 is already installed. Remove the pervious version?" IDOK uninst
Abort
uninst:
ExecWait '"MsiExec.exe" /X{8ED262EE-FC73-47A9-BB86-D92223246881} /qn'   ; /x is to uninstall and /qn is to uninstall it silently
${EndIf}
FunctionEnd

使用上面的代码,我可以卸载以前的版本。但我需要做更多的事情。

  1. 卸载它需要更长的时间,欢迎屏幕也变为“无响应”,但最终它正在完成卸载过程。有没有办法卸载它而不会没有响应?
  2. 我想在卸载时显示进度,以便最终用户知道卸载正在进行。为此,我删除了“/ qn”(静默卸载),如果我删除“/ qn”它显示进度但是又弹出一个消息框“你确定要卸载这个产品吗?” (可能是来自之前的wix安装程序)。是否有任何方法可以显示进度而不显示消息框“您确定要卸载此产品吗?”

请帮帮我。

wix nsis
1个回答
1
投票

/qb!作为参数。

这应该工作,因为参数/qb显示没有模态对话框的基本UI,另外/qb!意味着,你无法取消卸载过程。

有关它的更多信息,你可以找到here

问候

© www.soinside.com 2019 - 2024. All rights reserved.