2009-12-16 14 views
6

Yalnızca mevcut değilse yüklemek istediğim bir yapılandırma dosyası myapp.exe.config var. Yani, mevcut bir yapılandırma dosyasının üzerine yazmak istemiyorum. Bu WiX'te nasıl yapılabilir?WiX'de yoksa kopyalama Kopyala

cevap

12

Ne açıklamak olduğunu (Sonuçta ben çok ayarlara sahip varsayılan ve geçersiz kılma ve daha sofistike bir şey yapmak zorunda kalacaktır. Ama bu arada ben sadece kısa vadeli düzeltme arıyorum.) Dosya bir bileşenin keypath olması durumunda varsayılan davranış. foo.config zaten varsa Örneğin, aşağıdaki bileşen yüklenmeyecek (veya eşit ya da daha yüksek sürüm numarasına sahip bir dosya zaten varsa sürümü belirlenmiş dosya haricinde):

<Component Id="foo.config"> 
    <File Source="foo.config"/> 
</Component> 

Not varsa o Bileşeninizdeki birden fazla dosya, daha sonra sadece bir tane anahtar yolu olabilir. Dosyanın KeyPath özniteliğini yes olarak ayarlayarak bunu denetleyebilirsiniz. Ancak önerilen strateji, bileşen başına yalnızca bir dosyaya sahip olmaktır, bu durumda dosya otomatik olarak bileşen anahtar yoluna dönüşür.

düzenleme: bu varsayılan davranışın REINSTALLMODE property ile geçersiz kılınabileceğini unutmayın. MSI'nızı orca ile açmak ve bu özelliğin özellik tablosunda ayarlanıp ayarlanmadığını öğrenmek isteyebilirsiniz.

+1

Teşekkürler. Yanlış soruyu sorduğum ortaya çıkıyor. Yükleyicim yeni bir tane yüklemeden önce kaldırılmalıdır. (Eğitici, bu küçük bir yükseltme için tamamen normal olduğunu garanti eder.) Sorun, yapılandırma dosyası kullanıcı tarafından değiştirilmiş olsa bile siliniyor olmasıdır. Bunu araştırmam gerekecek. –