首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wix回滚自定义操作在升级取消中无效

Wix回滚自定义操作在升级取消中无效
EN

Stack Overflow用户
提问于 2016-11-14 05:38:50
回答 1查看 692关注 0票数 0

我不知道为什么回滚操作在升级过程中不起作用,但是它在安装过程中有效,我已经尝试了我在google中找到的几乎所有的方法,我真的希望在这里找到答案,所以我的问题是:1.我们必须定义两个自定义操作?一个是延迟的,另一个是回滚,回滚必须在延迟之前?但是我的回滚操作只是想在升级失败时重新启动服务,所以有必要这样做?而且我尝试过这个方法,它不起作用,但是在安装时我刚刚定义了一个回滚操作。您可以看到以下内容:(回滚操作在InstallInitialize和InstallFinalize之间)

1.在InstallExecuteSequence中

代码语言:javascript
复制
  <Custom Action="StartAllServicesWhenRollBack" After="InstallInitialize">1</Custom>
  <Custom Action="UninstallMysqlOdbcDriver" After="StartAllServicesWhenRollBack">1</Custom>

2.碎片

代码语言:javascript
复制
<CustomAction Id="StartAllServicesWhenRollBack" BinaryKey="StartAllServicesWhenRollBackScript" VBScriptCall="" Execute="rollback" Return="check"/>
<Binary Id="StartAllServicesWhenRollBackScript" SourceFile="startInstall.vbs" />
<CustomAction Id="UninstallMysqlOdbcDriver" BinaryKey="UninstallMysqlOdbcDriverScript" VBScriptCall="" Execute="immediate" Return="check"/>
<Binary Id="UninstallMysqlOdbcDriverScript" SourceFile="UninstallMysqlOdbcDriver.vbs" />

它将在安装中回滚,但在升级时不工作,另一种方法是:

代码语言:javascript
复制
  <Custom Action="StartAllServicesWhenRollBack" Before="StopAllServicesa">1</Custom>
  <Custom Action="StopAllServicesa" After="InstallInitialize">1</Custom>

  <CustomAction Id="StartAllServicesWhenRollBack" BinaryKey="StartAllServicesWhenRollBackScript" VBScriptCall="" Execute="rollback" Return="check"/>
<Binary Id="StartAllServicesWhenRollBackScript" SourceFile="startInstall.vbs" />
<CustomAction Id="StopAllServicesa" BinaryKey="StopAllServicesaScript" VBScriptCall="" Execute="deferred" Return="check"/>
<Binary Id="StopAllServicesaScript" SourceFile="stopService.vbs" />

此方法在升级时不起作用,因此我对此感到困惑,因此StopAllServicesa将执行回滚操作,但回滚操作不执行,似乎回滚操作未写入回滚脚本,如何在日志中找到回滚脚本?

EN

回答 1

Stack Overflow用户

发布于 2016-11-21 17:45:18

如果正在安装产品,则有回滚功能,以便自定义操作可以回滚它们对系统所做的任何更改。没有真正的“卸载回滚”。当一个产品正在卸载并以某种方式失败时,“回滚”只是重新安装该产品。在这种情况下,不需要任何特殊的回滚方式。如果RemoveExistingProducts失败了,它只是通过重新安装产品来取消卸载。

如果不查看完整的日志,就不可能准确地诊断到底发生了什么,但是升级的“安装新产品”部分失败了,然后安装回滚并调用任何所需的回滚CA。这和用户取消卸载没有什么不同-- Windows只是重新安装产品,不需要像“卸载回滚自定义操作”这样的东西才能工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40582468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档