2011-11-23 103 views
9

有沒有某種方式顯示消息框由於某些條件,但繼續安裝?Wix:顯示有條件的消息框沒有取消

我想告訴用戶有關RAM的建議數量,如果他少了。

如果我使用

<Condition Message="For running $(var.ProductName), 4GB of physical memory are recommended."> 
    <![CDATA[PhysicalMemory > 3500]]> 
</Condition> 

安裝與小於4GB的RAM機不成功。

我該如何避免這種情況?

感謝您的幫助!

回答

10

由於科斯明Pirvu的答案,我發現custom actions以下解決方案爲我工作,我想與大家分享:

<Custom Action="PhysicalMemoryWarning" After="InstallInitialize" /> 
<CustomAction Id="PhysicalMemoryWarning" Script="vbscript"> 
    <![CDATA[ 
    If session.Property("PhysicalMemory") < 3500 Then 
    MsgBox("For running $(var.ProductName), 4GB of physical memory are recommended.") 
    End If 
    ]]> 
</CustomAction> 
+6

也可以使用session.Message - http://msdn.microsoft.com/en-us/library/windows/desktop/aa371672(v=vs.85).aspx - 而不是MsgBox。這將有助於保持窗口父母和正確的重點。 –

+0

非常感謝您的提示!在Win7下,我們經常遇到MsgBox出現在實際安裝程序窗口「後面」的問題。如果我理解正確,可以通過使用'session.Message'來解決這個問題? (我不得不承認,我還沒有完全理解你鏈接到的文檔:?) –

+1

正確的,如果你使用session.Message,它將被正確地授權,以便它不會落在主MSI窗口後面。我鏈接到的VB API只是MsiProcessMessage的一個包裝 - http://msdn.microsoft.com/en-us/library/windows/desktop/aa370354(v=vs.85).aspx - 它的See Also鏈接是有用 - http://msdn.microsoft.com/en-us/library/windows/desktop/aa371614(v=vs.85).aspx –

2

Windows Installer不提供對此的直接支持。但你可以使用簡單的custom action。它可以是一個EXE,DLL的VBScript,JavaScript的等

+0

感謝澄清。我添加了一個包含解決我的問題的自定義操作的答案。 –