gpt4 book ai didi

c++ - Wix:如何从 C++ 将文件添加到 RemoveFiles 表

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:02 24 4
gpt4 key购买 nike

我一直在听从这个问题中的建议。

How to add a WiX custom action that happens only on uninstall (via MSI)?

我有一个可执行文件作为自定义操作在 InstallFinalize 之后运行,我打算清除所有文件和文件夹。我只是想写一些标准的删除逻辑,但我一直坚持 Rob Mensching 提出 Windows 安装程序应该处理这个问题,以防有人在卸载过程中中途放弃。

“创建一个将临时行添加到 RemoveFiles 表的 CustomAction”

我正在寻找有关此的更多信息。我不太确定如何在 C++ 中实现这一点,而且我的搜索结果并不多。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa371201(v=vs.85).aspx

谢谢尼尔


编辑:我已经标记了答案,因为这个问题是关于如何在 c++ 中将文件添加到 removeFiles 表的具体问题,但是我倾向于同意更好的解决方案是使用 wix 中的 RemoveFolderEx 功能,即使它目前处于测试阶段(我认为是 3.6)

最佳答案

大致上,您必须按此顺序使用以下功能:

  • MsiDatabaseOpenView -(输入)句柄是您在自定义操作函数中获得的句柄
  • MsiCreateRecord - 创建一个包含 SQL 内容的记录
    • MsiRecord* - 准备记录的函数集
  • MsiViewExecute 将新记录插入到您喜欢的任何表中 ...
  • MsiCloseHandle - 使用第一步的句柄和记录句柄(来自 MsiCreateRecord)

一切都有详细解释over at MSDN .但是,请特别注意“不适用于自定义操作的函数”部分。

MsiViewExecute 的文档还解释了 SQL 查询的外观。要感受它们,您可能需要使用属于 Windows Installer SDK 一部分的 .vbs 脚本之一。

关于c++ - Wix:如何从 C++ 将文件添加到 RemoveFiles 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8213980/

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