【问题标题】:Check RAM in WIX Installer在 WIX 安装程序中检查 RAM
【发布时间】:2012-03-19 07:20:08
【问题描述】:

我想创建一个 WIX 安装程序,在先决条件检查期间,我想查看系统上安装的 RAM 量。如果它小于 1 GB,它应该向用户显示一条消息,指示“Amount of系统上的 RAM 小于此产品所需的最低要求。您仍要继续安装吗?” 显示的消息框中有两个按钮(是和否)。如果用户单击是,我继续安装,如果用户单击否,我将只显示完成对话框或中止安装。我怎样才能做到这一点?

【问题讨论】:

  • 我认为这不是安装程序问题。像“1GB”内存这样的要求通常是 B.S.由营销驱动的绒毛,与实际的工程需求几乎没有关系。此外,安装后 RAM 的数量可能会发生变化,因此最好由应用程序在运行时处理(如果有的话)。

标签: wix windows-installer


【解决方案1】:

Windows Installer 在PhysicalMemory property 中设置系统RAM 数量。通常此属性用作launch condition,它会停止安装并向用户显示一条消息。

启动条件不允许用户继续。所以如果这不是一个选项,一个解决方案是使用custom action。如果还不够,您的自定义操作可以检查 PhysicalMemory 并显示自定义消息框。根据用户的回答,自定义操作可以返回 0 以继续或返回 1602 以停止。

这是一个示例条件:

PhysicalMemory >= 1024

【讨论】:

  • 您好,您能否帮我提供一个示例代码,用于您上面解释的内容。我不知道如何显示自定义消息框并从中返回值并解释安装程序中的值。
  • 如果您提到 PhysicalMemory 属性,我会给您 +1,但不需要自定义操作。这就是 SpawnDialog 的用途。
  • 如何在条件中使用此 PhysicalMemory 属性?之前需要引用或设置吗?需要添加任何参考吗? (对不起,这方面的链接没有帮助)
  • @juagicre,我添加了一个示例条件。属性设置好了,检查一下就好了。
【解决方案2】:

无需自定义操作即可实现您的要求。您可以创建一个 Windows Installer 对话框并将其插入到其他两个对话框(例如 WelcomeDlg 和 VerifyReadyDlg)之间,以便根据 PhysicalMemory 属性有条件地调用。

WelcomeDlg 的 ControlEvents 和条件如下所示:

SpawnDialog NotEnoughMemoryDlg PhysicalMemory

然后创建一个看起来像消息框的对话框并将其命名为 NotEnoughMemoryDlg。为 EndDialog Return 1 的 Yes 按钮设置一个 ControlEvent。为 EndDialog Exit 1 的 No 按钮设置一个 ControlEvent。

如果系统有足够的内存,它将跳过对自定义对话框的调用。如果系统没有足够的内存,它会调用对话框。如果用户单击“是”,它将返回并进入下一个控制事件,该事件将您带到 VerifyReadyDlg。如果用户单击否,它将返回取消消息并调用设置完成取消对话框。

我并没有在 WiX 中做太多的 UI 工作(我主要使用 InstallShield,但底层的 MSI 概念是相同的)所以我不能真正给你“做这个”的代码。特别是因为我不知道您当前的 WiX UI 代码是什么样的。 (你用的是 WiXUI 扩展吗?)

【讨论】:

    【解决方案3】:

    您可以按照我的指示发送至show a non-blocking warning for the operating system。调整这些指令以警告 Cosmin 提到的 PhysicalMemory 属性的值应该不会太难。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多