【问题标题】:Storing user-entered data from a Wix installer从 Wix 安装程序存储用户输入的数据
【发布时间】:2014-07-24 21:56:05
【问题描述】:

我正在创建一个 Wix 安装程序,我想存储一些用户在安装过程中设置的值,以便我以后可以读取它们。显然我可以将这些值保存在注册表中,但是在 Wix 中是否有更好的方法来实现这一点?

【问题讨论】:

  • 将此类值写入系统的一种更简单的方法是通过 IniFile 条目。然后,您需要一个相对简单的自定义操作来读回这些值。
  • Windows Installer IMO 的脑死缺陷之一。为什么要将 INIFile 表设计为写入任何目录中的 INI 文件,而将 INILocator 表限制为 Windows 目录?

标签: c# wix installation windows-installer wix-extension


【解决方案1】:

将它们存储在注册表中有什么问题?

说真的:)

我从事该行业已有 20 多年,并且见证了从 Windows 3.1 到 Windows 8.1 的演变……可以追溯到 Commodore 64 / 128D / CPM / AmigaOS,但我们不会计算在内。我看到了从 INI 到 Registry 再到 XML 的演变,我个人认为对注册表的仇恨被夸大了。我确实不喜欢 COM 和 COM 注册,但使用 HKLM 和 HKCU 配置单元来存储公司/产品特定的配置信息很好,并且 Windows Installer 非常支持它。这是 Windows Installer 缺乏的 XML 支持。在某种程度上,WiX 也缺乏 XML 支持,因为我上次看到它可以写入 XML 数据,但如果没有额外的自定义操作就无法读取它。

因此,如果您想要一个强大、可靠的安装程序,只需使用注册表即可。

【讨论】:

  • 我完全不反对使用注册表,但我是 WiX 的新手,我只是想确保我没有错过一些我不知道的更好的选择。跨度>
【解决方案2】:

我没有使用过这个功能。但你应该调查一下 Rob Mensching 的这篇博文:http://robmensching.com/blog/posts/2010/5/2/the-wix-toolsets-remember-property-pattern/

这是另一个 stackoverflow 帖子: Advanced RememberProperty pattern

【讨论】:

  • Rob 的记忆属性模式缺少 IMO。我在过去详细说明了我的反对意见,因为您希望属性值优先模式与它一起在升级期间进行服务。
  • 我从未尝试过这种模式。当我进行 SOE 部署编码时,我自己在 C++ dll 中实现了这个“持久属性功能”。它将属性写入注册表,然后选择是否覆盖。
猜你喜欢
  • 1970-01-01
  • 2017-04-22
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
  • 2013-11-19
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多