2011-11-23 14 views
9

Bazı durumlar nedeniyle bir mesaj kutusu göstermenin bir yolu var ama devam ediyor?Wix: Koşullu mesaj kutusunu iptal etmeden göster

Daha azı varsa, kullanıcıyı tavsiye edilen RAM miktarı hakkında bilgilendirmek istiyorum.

Ben

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

kullanırsanız yükleme 4GB RAM daha az olan makinelerde başarısız olur.

Bundan nasıl kurtulabilirim?

Yardımlarınız için teşekkürler!

cevap

10

Teşekkür olabilir, sizinle paylaşmak istiyorum: için

<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

Ayrıca, session.Message - http://msdn.microsoft.com/en-us/library/windows/desktop/aa371672(v=vs.85).aspx - MsgBox yerine kullanmak iyi olurdu. Bu pencere ebeveynliğini ve odaklanmaya yardımcı olur. –

+0

İpucunuz için çok teşekkürler! Win7 altında, sık sık MsgBox'ın gerçek yükleyici penceresinin "arkasında" görünmesi sorunuyla karşılaştık. Eğer sizi doğru anlıyorsam, bu 'session.Message' kullanılarak düzeltilebilir mi? (Hala bağlandığınız belgeleri tam olarak anlamadığımı itiraf etmeliyim:?) –

+1

Doğru, eğer session.Message kullanırsanız, ana MSI penceresinin arkasına gitmeyecek şekilde doğru şekilde parse edilecektir. Bağlandığım VB API'sı, yalnızca MsiProcessMessage'ın etrafındaki sarıcıdır - http://msdn.microsoft.com/en-us/library/windows/desktop/aa370354(v=vs.85).aspx - ve ayrıca Bkz. yararlı - http://msdn.microsoft.com/en-us/library/windows/desktop/aa371614(v=vs.85).aspx –

2

Windows Installer bunun için doğrudan destek sunmuyor. Ancak basit bir custom action kullanabilirsiniz. Bu bir EXE, DLL, VBScript, JavaScript vb benim için çalışmak custom actions ile aşağıdaki çözüm buldu Cosmin Pirvu cevabı

+0

Teşekkür açıklama. Sorunu çözen özel eylemi içeren bir yanıt ekledim. –

İlgili konular