【发布时间】:2012-09-30 19:54:42
【问题描述】:
我正在使用 installshield 2012 spring Professional 创建一个 basic msi 安装程序,这里我有一个自定义对话框来从用户那里收集一些数据,我称之为自定义dll 操作在安装文件夹中创建数据库。
我有一个计划的 dll 自定义操作来运行 InstallFinalise 之后,我想检查 dll 的返回值,如果该值指示失败,我需要中止并回滚安装过程。
我已经设法捕捉到错误并中止安装,但问题在于回滚。现在安装中止但文件已经创建。如何让安装回滚?有可能..有什么想法吗??
【问题讨论】:
-
我认为如果您从操作中返回非零代码,这应该会自动发生。您的操作的设置是什么?可能你需要设置检查返回码。
-
只有在 installfinalise 之前返回错误时,基于错误的回滚操作才会自动起作用,但问题是在 installfinalise 之前,文件和文件夹没有创建,所以我正在执行installfinalise 之后的 dll 动作 ..
-
输入错误的安装最终确定为安装文件 .. mybad !! :(
-
我知道了。事实是我有点注定要使用 installshield 2008 并且我看到了卸载的一些问题 - 如果安装位置不是 ASCII 路径卸载不会从某些组件中删除某些文件。这就是我编写自己的自定义操作来清理文件的原因。我当然希望这个问题在以后的软件版本中得到解决
标签: installshield installshield-2012 basic-msi