我想在先決條件檢查過程中創建一個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