2011-11-23 11 views
9

何らかの理由でメッセージボックスを表示する方法がありますがインストールを続行しますか?Wix:キャンセルなしで条件付きメッセージボックスを表示

RAMが少ない場合は、推奨RAM量をユーザーに通知したいと考えています。

私は

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

を使用する場合は、インストールが4GBのRAM未満のマシン上で失敗しました。

どうすればこの問題を回避できますか?

ありがとうございました!

答えて

10

おかげで、私はあなたと共有したいEXE、DLL、VBScriptのは、JavaScriptなどになりますため

<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

MsgBoxの代わりにsession.Message - http://msdn.microsoft.com/en-us/library/windows/desktop/aa371672(v=vs.85).aspxも使用するとよいでしょう。これは、ウィンドウの子育てと正しいフォーカスを維持するのに役立ちます。 –

+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 - その関連リンクもあります。便利 - http://msdn.microsoft.com/en-us/library/windows/desktop/aa371614(v=vs.85).aspx –

2

Windowsインストーラはこれを直接サポートしていません。しかし、単純なcustom actionを使うことができます。それは私がcustom actionsと、次の解決策は、私のために働くことが分かっはCosmin Pirvuの答えに

+0

感謝明確化。私は私の問題を解決するカスタムアクションを含む答えを追加しました。 –

関連する問題