使用WiX构建安装程序时,如何合并INI文件?

时间:2012-11-15 18:51:36

标签: installer wix windows-installer ini

我正在寻找的行为是:

if (!$bIniFileExists)
{
  CopyBaseIniFile($installDir, $newIniFile);
}
else
{
  foreach $key in $newIniFile
  {
     if (!exists $oldIniFile{$key})
     {
        AddKeyValueToIni($oldIniFile, $key, $newIniFile{$key});
     }
  }
}

所以我想保留旧用户设置,但仍然可以复制任何新设置。我是WiX的新手,经过一些谷歌搜索,发现了IniFile WiX对象,但问题是我宁愿将所有默认值保存在'default ini file'中,这样可以更容易地从调试器运行应用程序。使用IniFile解决方案,我需要在config.ini和安装程序中包含密钥,这似乎是不必要的重复工作。有没有办法做我想做的事?

1 个答案:

答案 0 :(得分:1)

对于INI和XML,这变得非常复杂。为了做你的建议,我建议你重写代码2支持2个INI文件。

STOCK.INI

user.ini文件

概念是安装程序始终可以安全地覆盖STOCK.INI,因为它“拥有”它。

另一方面,USER.INI没有安装程序安装,它由应用程序生成。

然后,读取设置的代码必须检查USER.INI以查看是否存在值以及它是否从STOCK.INI中重写它。

这允许管理stock.ini并将user.ini作为转换。

尝试在1个文件(尤其是XML)中管理它是非常非常困难的,并且需要进行大量计划以确定要保留哪些属性以及在合并数据时要替换哪些属性。