gpt4 book ai didi

Wix:是否可以从自定义操作手动运行 RemoveFolderEx 元素?

转载 作者:行者123 更新时间:2023-12-04 19:16:53 26 4
gpt4 key购买 nike

我想知道是否可以从自定义操作手动运行 RemoveFolderEx 元素。我猜可能不是,但有人可能知道一种我不知道的方式。

我的问题是我想运行 RemoveFolderEx 元素,但只在真正的 UNINSTALL 上运行,但是我的程序在升级时执行它,因为我在重新安装之前将它设置为卸载。

我通过这个方法试过了
Wix: condition on property not working
但是它不起作用并且在重新安装时仍然运行。

我唯一能想到的是能够从自定义操作中手动设置 RemoveFolderEx 关闭,我知道我在正确的点运行并且仅在真正卸载时运行。也许我的自定义操作可以使用 c++ dll,然后手动将命令添加到 MSI 界面,但如果我要走那么远,我自己完全编写删除逻辑可能也是如此。

谢谢。尼尔

编辑:我终于开始工作了,这里有一些示例 wix 来展示我所做的。

<Property Id='P.REMOVEDATAFOLDER' Secure='yes' />

<DirectoryRef Id="DATADIR">
<Component Id="C.RemoveDataFolder" Guid="myguid" KeyPath="yes">
<util:RemoveFolderEx On="uninstall" Property="P.REMOVEDATAFOLDER" />
</Component>
</DirectoryRef>

<CustomAction Id="CA.SetDataFolder" Property="P.REMOVEDATAFOLDER" Value='[DATADIR]' />

<InstallExecuteSequence>
<Custom Action="CA.SetDataFolder" Before="ValidateProductID" >(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Custom>
</InstallExecuteSequence>

属性 P.REMOVEDATAFOLDER 只有在从注册表读取 DATADIR 之后但在 CostInitialize 操作之前立即设置为真正的卸载。

最佳答案

我会使用以下方法。不要限制 RemoveFolderEx 操作,而是使用有条件的自定义操作来为目标属性设置适当的值。

关于Wix:是否可以从自定义操作手动运行 RemoveFolderEx 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8263239/

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