我想在先决条件检查过程中创建一个WIX安装程序,我想查看系统上安装的RAM数量。如果小于1 GB,它应该向用户显示消息表示“系统上的RAM数量少于本产品所需的最小数量,您是否仍想继续安装?” 显示的消息框中有两个按钮(是和否)。如果用户单击是,我继续安装,如果用户单击否,我将只显示完成对话框或中止安装。我怎样才能做到这一点?检查WIX安装程序中的RAM
回答
Windows Installer将系统RAM数量设置为PhysicalMemory property。通常这个属性被用作launch condition,它会停止安装并向用户显示一条消息。
启动条件不允许用户继续。所以如果这不是一个选项,解决方案是使用custom action。您的自定义操作可以检查PhysicalMemory并在不足时显示自定义消息框。根据用户的回答,自定义操作可以返回0继续或1602停止。
嗨,你可以帮我解释一下上面解释的示例代码。我不知道如何显示自定义消息框并从中返回值并解释安装程序中的值。 – 2012-03-19 12:26:39
我会给你一个+1提PhysicalMemory属性,但不需要自定义操作。这是SpawnDialog的用途。 – 2012-03-19 12:50:25
自定义操作不需要实现您的要求。您可以创建一个Windows Installer对话框,并将其插入到另外两个对话框(例如WelcomeDlg和VerifyReadyDlg)之间,以基于PhysicalMemory属性进行有条件调用。
这里的ControlEvents和条件是什么样子的WelcomeDlg:
SpawnDialog NotEnoughMemoryDlg PhysicalMemory < X NewDialog VerifyReadyDlg 1
然后创建一个对话框,看起来像一个mesage箱,并调用它NotEnoughMemoryDlg。为EndDialog的Yes按钮设置一个ControlEvent返回1.为没有按钮的ControlEvent指定EndDialog Exit 1.
如果系统有足够的内存,它将跳过对自定义对话框的调用。如果系统没有足够的内存,它会调用对话框。如果用户点击是,它会返回并进入下一个控制事件,该事件将您带到VerifyReadyDlg。如果用户单击否,它将返回一个取消消息并调用安装完成取消对话框。
我真的不这样做在维克斯多UI的工作(我主要使用InstallShield但底层MSI概念是相同的),所以我真的不能给你“做”的代码。特别是因为我不知道你目前的WiX UI代码是什么样的。 (您使用的是WiXUI扩展?)
你可以按照我的指令show a non-blocking warning for the operating system。适应这些说明警告的PhysicalMemory
属性的值由科斯明提到应该不会太困难。
- 1. 安装前安装WiX检查文件
- 2. 检查WIX安装程序中的操作系统
- 3. 检查在WiX安装程序中安装的.NET?在哪里放置条件?
- 4. 用WiX安装程序安装PostGreSql
- 5. Windows安装程序XML(WiX)
- 6. WIX安装程序升级
- 7. Wix安装程序维护
- 8. WiX服务安装程序
- 9. pericachine安装程序中的ICE91 Wix
- 10. 已安装WIX检查SQL Reporting Services
- 11. 如何在WiX安装程序中检查GAC中的二进制文件?
- 12. WIX安装程序中添加和LocalAppDataFolder
- 13. 在WIX安装程序中添加GRID
- 14. 在wix安装程序中填充ListBox
- 15. WIX安装程序时间框架来开发安装程序
- 16. wix - 安装程序或补丁安装程序
- 17. ProgramFiles64Folder正在安装到WIX安装程序中的\ Program Files(x86)\
- 18. 我的WiX安装程序的主题
- 19. Wix安装程序安装.net如果没有安装
- 20. 从32位WIX安装程序中检测64位系统
- 21. WiX安装程序包含msi的dll
- 22. WiX的安装程序:登录由DoAction
- 23. wix#创建安装程序的脚本
- 24. 运行安装程序或检查程序是否安装
- 25. Wix安装程序 - 创建安装程序,总是重新安装在自己
- 26. 如何在WIX中安装时运行其他程序(PostgreSQL)的安装程序?
- 27. (Un)在WIX Burn安装程序中安装NSIS包
- 28. Wix引导程序不会检测已安装的.NET框架
- 29. 检查.NET Framework的NSIS安装程序
- 30. C++检查已安装的程序
我认为这不是安装程序问题。像“1GB”内存的要求通常是B.S.由市场驱动的绒毛,与实际工程需求无关。此外,安装后RAM的数量可能会发生变化,所以最好在运行时由应用程序处理(如果有的话)。 – 2012-03-19 13:28:16