wix - 如何防止 CostFinalize 操作在卸载期间删除文件夹/文件
问题描述
下面是 CostFinalize 开始和结束之间的日志。我要保留 MyFolder 文件夹及其内容。但它作为默认操作被删除
行动开始时间 9:30:32:CostFinalize。
添加 ABCDIR 属性。它的值是'C:\ProgramData\ABC\MyFolder\'。属性更改:修改.....这适用于 Myfolder 中的所有元素
MSI (s) (98:F8) [09:30:32:860]: Dir (target): Key: ABCDIR , Object: C:\ProgramData\ABC\MyFolder\
行动于 9:30:35 结束:CostFinalize。返回值 1。
解决方案
成本核算:CostFinalize
是“成本核算”的一部分的标准操作 - 确定磁盘空间安装要求和其他事情的整体过程。File Costing
是这个过程的核心部分。还有其他事情发生了——比如我猜想为 I/O 操作解析目录和调度文件——说实话,不确定所有细节——它们并没有真正完整地记录在案。
据我所知,成本核算操作不会对系统进行任何更改,但它们将有助于安排要安装或卸载的文件。因此,看起来删除是因为此操作而发生的。
RemoveFiles:InstallExecuteSequence
处理两次。首先构建一个执行脚本,然后运行实际的安装事务操作。在第二次运行标准操作RemoveFiles
并InstallFiles
执行相应的文件操作时,您的文件可能会被该RemoveFiles
操作删除 - 除非有自定义操作在序列中的其他位置进行删除。
推荐阅读
- python - 带散景的 3 维圆(散点图)图
- javascript - python“请求”模块的响应可以执行提交吗?
- javascript - 如何防止我的表单操作 (html) 使用 javascript?
- javascript - onPress() 不适用于反应导航
- php - 试图调用类“App\Twig\AppExtension”的名为“getDoctrine”的未定义方法
- python - 如何让结果打印出来?/如何接收变量“x”的用户输入?
- angularjs - 如何从angularjs中的组合获取参数
- python - 如何将数据输出到带有标题的 CSV 文件?
- mysql - 根据两个字段查找一个表上缺少的值,而这些值存在于另一个表中
- mongodb - 在 atlas 云中运行的 mango db 上强制关闭连接