gpt4 book ai didi

Wix - 如何在卸载后 installfinalize 后运行 exe?

转载 作者:行者123 更新时间:2023-12-04 21:43:24 25 4
gpt4 key购买 nike

我正在使用 wix 安装程序覆盖(读取:修改现有的注册表值),添加新的等。卸载后我需要将它们恢复到原始状态(我修改的那些)。由于 Wix 不支持此功能,因此我必须使用自定义操作(如我所读),我想运行一个 exe,该 exe 将使用 reg import 运行 .reg 文件.根据本站:http://www.installsite.org/pages/en/isnews/200108/index.htm我的自定义操作必须运行 After="InstallFinalize"因为 wix 回滚会删除我的注册表导入(作为回滚的一部分)。
所以基本上它看起来像这样:安装程序修改 reg 值,卸载程序删除所有触及的注册表更改(回滚的一部分),我的 exe 将恢复它们。

所以我按照他的方法做了,以提升的权限启动我的exe等。
http://wixtoolset.org/documentation/manual/v3/customactions/qtexec.html

            <Component Id="registry" Guid="*">
<File Id="regexe" Source="RegistryRollback.exe"/>
<File Id="regfile" Source="Reg_rollback.reg" />
</Component>

<Property Id="LaunchRegExe" Value="[#regexe]" />
<CustomAction Id="LaunchRegExe" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="check" Impersonate="no"/>

<Custom Action='LaunchRegExe' After='InstallFinalize'>Installed AND NOT UPGRADINGPRODUCTCODE</Custom>

但我收到了 Error 19 ICE77: LaunchRegExe is a in-script custom action. It must be sequenced in between the InstallInitialize action and the InstallFinalize action in the InstallExecuteSequence table C:\Merlin\Main\Demo\KioskDemoSetup\nw_setup\nw.wxs 250 1 nw_setup
感谢您的帮助!

最佳答案

According to this site: http://www.installsite.org/pages/en/isnews/200108/index.htm my custom action has to run After="InstallFinalize" because the wix rollback would delete my registry import (as part of the rollback).



你能指定那个网站上提到的地方吗?我正在查看它,但找不到您的操作应该使用 After="InstallFinalize" 运行的原因.

它确实提到的是

Deferred, rollback and commit custom actions can only be placed between InstallInitialize and InstallFinalize



这就是您出错的原因:您有一个延迟操作,但想在 installfinalize 后运行它。

如果安装(或卸载)被中止,例如当用户取消时,将执行回滚脚本。我认为您可以简单地使用 Before="InstallFinalize" 运行您的操作.

关于Wix - 如何在卸载后 installfinalize 后运行 exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26661439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com