2012-09-07 23 views
13

Bir yükleyici için Burn'ı bir bootstrapper olarak kullanmaktayım ve MSI'ya bir çift argüman iletmem gerekiyor.Ek girişlerle birlikte WiX Burn temasını özelleştirme

Bunu yapmanın yolunun MsiProperty öğelerini kullanmak olduğunu biliyorum, bu sorunu yakalamak için UI'yi görüntülemekle ilgili sorun yaşıyorum. Yönetilen önyükleyici uygulama ana bilgisayarıyla tamamen özel bir kullanıcı arayüzü oluşturabileceğimin farkındayım, ancak bu, önyükleyiciye nispeten küçük bir ince ayar yapmak için uygulanması gereken çok iş olduğu ortaya çıkıyor. Birlikte this blog article buldum

temel UI özelleştirmeler nasıl açıklar ve merak eğer onun değeri bunu geçebilir böylece daha sonra Yanık değişkeni ayarlamak için kullanmak basit bir onay kutusu/metin kutusu (içerecek şekilde Yanık UI değiştirmek mümkün MSI'mda) benzer şekilde mi yoksa yönetilen bootstrapper uygulama ana bilgisayarını kullanmam gerekiyor mu?

cevap

33

Bu belgede herhangi bir belge bulamıyorum, ancak kaynak kodu üzerinden biraz deneme veya okuma yapılması, bunun oldukça basit olduğunu ortaya koyuyor - yalnızca kontrolün Name değerini (örn. Checkbox) bir Yanık değişkeni adına ayarlamanız yeterlidir bazı değerine başlatılması Eğer paket altında bir yanık değişkeni tanımlamak isterseniz böylece

<Checkbox Name="MyCheckBox" ...>Hello, checkbox</Checkbox> 

(bu koymak nerede daha fazla bilgi için Burn UI Customisations bakınız) gibi - (bir WiX değişken onlar farklıdır) ("işaretli" için 1 ve onay kutularıyla birlikte "işaretlenmemiş" için 0'ı kullanın)

Ancak bunun için gerekli değildir - değişken sizin için otomatik olarak oluşturulacaktır. Not: WixVariable değil, Variable olması gerekir - bunlar farklıdır.

Nihayet bu yüzden

<MsiPackage Name="MyMsi.msi" ...> 
    <MsiProperty Name="SOMEPROPERTY" Value="[MyCheckBox]" /> 
</MsiPackage> 

MSI özelliği "SOMEPROPERTY" değeri daha sonra 0 olarak ayarlanır gibi, MsiPackage elemanın bir çocuk olarak bir MsiProperty öğesi ekleyin bu değişken dayalı bir MSI özelliğini ayarlamak için veya onay kutunuzun kontrol edilen durumuna göre 1.

+0

Bu yöntemi de kullanıyorum - işe yarıyor. Yanıt olarak bunu kabul etmek muhtemelen güvenli :) –

+0

Büyük yardımlar sayesinde, SOMEPROPERTY = "" MSI'ye'daki user2128898