0

我正在寻找的行为是:

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

所以我想保留旧的用户设置,但仍然复制任何新设置。我是 WiX 的新手,经过一番谷歌搜索,找到了 IniFile WiX 对象,但问题是我宁愿将所有默认值保留在“默认 ini 文件”中,这样​​可以更轻松地从调试器运行应用程序。使用 IniFile 解决方案,我需要在 config.ini 和安装程序中包含密钥,这似乎是不必要的重复工作。有什么好方法可以做我想做的事吗?

4

1 回答 1

1

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

股票.INI

用户.INI

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

另一方面,USER.INI 不是由安装程序安装的,而是由应用程序生成的。

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

这允许对 stock.ini 进行管理,并将 user.ini 用作转换。

尝试在 1 个文件(尤其是 XML)中管理所有内容非常非常困难,并且需要在决定哪些属性要持久化以及哪些属性要替换为数据合并的一部分时进行广泛的规划。

于 2012-11-15T20:40:23.723 回答