2011-07-16 30 views
8

Dont'anlamak .NET framework bu durumun kullanabilirsiniz yüklüyse:kontrol etmek için WiX koşulları boolean mantığı

<Condition Message="This application requires .NET Framework"> 
    <![CDATA[Installed OR NETFRAMEWORK20]]> 
</Condition> 

anlamıyorum neden iki alt koşulları (Yüklü, NETFRAMEWORK20) benim yanlış anlama nerede

<![CDATA[Installed AND NOT NETFRAMEWORK20]]> 

: bir OR operatörü ile birleştirilir, daha doğrusu ben her iki koşulların bir AND ile birleştirilir böyle bir şey beklenebilir?

cevap

13

<Condition> eleman için yükleyici için ön koşul olduğu için devam (ve koşul başarısız olması durumunda mesaj sadece kullanılır).

  1. Bu paket zaten yüklüdür: ya eğer bu tesisin işletilmesi devam etmek

    Yani, biz istiyoruz. Başka bir işlem gerçekleştiriyoruz (silme, kaldırma) ve diğer koşulları kontrol etmemize gerek yok, ya da

  2. (İlk koşul doğru olmadığı için) Özellikle paketi yüklemek için çalışıyoruz, ve .NET Framework 2.0'ın (veya daha iyisinin) yüklü olduğunu tespit ettik. <Condition> sadece NETFRAMEWORK20 oldu ve birisi sadece .NET Framework kaldırıldı ve ardından paketi kaldırmaya çalıştı olsaydı

, başarısız ve mesajı görüntüleyecektir koşul "Bu uygulama .NET Framework gerektiriyor" - Bu çok can sıkıcı olurdu.

+0

Ah! Yükleme şu anda devam ediyorsa yanlış 'INSTALLED = true' düşündüm. Açıklama için teşekkürler. Çok iyi cevap – nabulke