检查WIX安装程序中的RAM

检查WIX安装程序中的RAM,wix,windows-installer,Wix,Windows Installer,我想创建一个WIX安装程序,在先决条件检查期间,我想查看系统上安装的RAM数量。如果小于1 GB,则应向用户显示一条消息,指示“系统上的RAM数量小于此产品所需的最低数量。是否仍要继续安装?” 显示的消息框中有两个按钮(是和否)。如果用户单击“是”,我将继续安装;如果用户单击“否”,我将显示“完成”对话框或中止安装。如何实现这一点?Windows Installer将系统RAM量设置为。通常,此属性用作停止安装并向用户显示消息的命令 启动条件不允许用户继续。因此,如果这不是一个选项,解决方案是使

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

Windows Installer将系统RAM量设置为。通常,此属性用作停止安装并向用户显示消息的命令

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

以下是一个示例条件:

PhysicalMemory >= 1024

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

以下是WelcomeDlg的控制事件和条件:

SpawnDialog NotEnoughMemoryDlg PhysicalMemory 然后创建一个看起来像台面框的对话框,并将其称为NotEnoughMemoryDlg。为EndDialog Return 1的Yes按钮设置一个ControlEvent。为显示EndDialog Exit 1的No按钮创建一个ControlEvent

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


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

您可以按照我的说明进行操作。调整这些说明以警告Cosmin提到的
PhysicalMemory
属性的值应该不会太困难。

Hi,您能为我提供一个示例代码来解释您上面解释的内容吗。我不知道如何显示自定义消息框并从中返回值,以及如何解释安装程序中的值。如果提到PhysicalMemory属性,我会给你一个+1,但不需要自定义操作。这就是SpawnDialog的用途。如何在条件中使用此PhysicalMemory属性?是否需要在之前引用或设置它?是否需要添加任何参考?(抱歉,这方面的链接没有帮助)@juagicre,我添加了一个示例条件。属性已设置,只需检查它。我认为这不是安装程序的问题。像“1GB”内存这样的需求通常是由营销驱动的B.S.绒毛,与实际工程需求关系不大。此外,RAM的数量在安装后可能会发生变化,因此应用程序最好在运行时对其进行处理(如果有)。