我有一个在安装期间运行时运行良好的 InstallScript 函数,我需要在卸载期间运行该函数。它正在备份现有的应用程序。我为它创建了一个自定义操作,并在 InstallValidate 之后将其添加到执行序列中。
没有生成日志文件,据我所知卸载,所以我无法弄清楚为什么它失败并出现“功能转移错误”-1603。
我很确定该函数没有被调用,因为我将 MessageBox 作为第一件事。
我有一个在安装期间运行时运行良好的 InstallScript 函数,我需要在卸载期间运行该函数。它正在备份现有的应用程序。我为它创建了一个自定义操作,并在 InstallValidate 之后将其添加到执行序列中。
没有生成日志文件,据我所知卸载,所以我无法弄清楚为什么它失败并出现“功能转移错误”-1603。
我很确定该函数没有被调用,因为我将 MessageBox 作为第一件事。
您应该将 Install UI Condition 或 Install Exec Condition 设置为
(REMOVE="ALL")OR(REMOVE="<feature_being_uninstalled>")
以防万一您已经或将来要安装多个功能。(当然,除非您只想在卸载整个产品的情况下运行自定义操作)
要在卸载期间运行自定义操作,请将其条件设置为REMOVE="ALL"
安装 UI 条件或安装执行条件,这适用于您的情况。
要在已安装产品时运行自定义操作,条件应设置为Installed
。
要在未安装产品时运行自定义操作,应将条件设置为Not Installed
。
我相信您可以使用以下msiexec命令来记录卸载:
msiexec /x YourProduct.msi /L*v logfile.txt
或者
msiexec /x {Your Product/Package Code} /L*v logfile.txt