如何检查INI文件是否存在wix toolset
-
21-12-2019 - |
题
我有一个.ini文件配置。我需要检查它是否存在于新安装中,以避免再次创建它。此外,如果新的.ini有新的字段添加到现有文件。
解决方案
不要将ini文件作为文件安装,但将条目转换为 inifile表条目 。这允许所有INI文件更改为被视为“原子变化单元”,允许通过内置MSI机制正确合并和回滚。 避免所有自定义动作复杂性。
作为克里斯在他的主要升级评论中指出:在Wix / MSI中正确的方式做事,在需求变化或更新变得复杂时,您可以避免很多问题开始弹出。 inifile更新实现了正确的方式是强大而简单的处理。
在wix中,您使用 inifile元素 实现这一点。所有合并功能,回滚支持和高级INI文件处理免费。您需要做的就是在安装期间定义需要在INI文件中添加或修改的内容。如果它在第一位置,它也将被创建。
使用inifile元素可能看起来比它更难。 这里是一个样本 。您也可以看看 众所周知的wix教程
所有MSI-Experts都在重复此建议:如果有等同的内置MSI构造,请不要使用自定义操作来更改系统。
其他提示
在.ini文件的组件上设置neltoverwrite=“是”,然后通过自定义操作处理更新。
编辑:通常使用 inifile table ,从我的答案中解释的,从你得到回滚和合并能力。但是,有些人更喜欢作为文件安装的INI文件到允许从MSI文件外部轻松修改文件。虽然不是首选,但这确实允许人们直接在安装媒体位置上“修补程序”。团队可以使用它来让安装人员从开发中拿起最新的Ini。这有技术问题可以通过自定义操作(最重要的文件替换问题)来处理。 INI文件也可能具有<强>非标准元素和格式化,它不适用于inifile表(罕见的,但可能的 - 有感觉的人,然后使用不同的文件扩展名) 。正如已经解释的那样,我将通过您自己的自定义操作强烈地建议更新INI文件,除非您正在做一些非常特别 - 实际需要的东西。实施并右转。
我建议有2个INI文件。安装程序拥有一个,并且应用程序/用户拥有一个。安装程序始终覆盖它的INI文件,永远不要担心在用户数据上踏上。