2011-09-07 20 views
9

En son adalet (Wix v3.5) kullanıyorum ve basit bir Wix VS 2010 kurulum projesi oluşturdum. Web sitem referansı ekledim ve Harvest seçeneğini true olarak ayarladım. Hasar dosyaları LGHT0231 hatasına neden oluyor

Şimdi IISROOT altında bir klasöre benim INSTALLDIR puan beri, bu light.exe hatayı alıyorum: Bu hata arkasındaki nedeni anlamak iken

[filepath]: error LGHT0231: The component 'cmp93982C4086FF8C75F07339DD7CEA8152' has a key file with path 'TARGETDIR\webdir...[filename].xml'. Since this path is not rooted in one of the standard directories (like ProgramFilesFolder), this component does not fit the criteria for having an automatically generated guid. (This error may also occur if a path contains a likely standard directory such as nesting a directory with name "Common Files" under ProgramFilesFolder.)

, ben ille belki (onun rasyonel kabul etmiyorum Wix MSI jenerasyonunun doğuştan çalışmalarını anlamıyorum).

Bu hatayı nasıl çözebilirim? Ben Takım Build ile birlikte bunu ayarlamak çalışıyorum

:


bazı fikir vermek için. Eski biçimi kullanabilir ve bu sorunu atlamak için bir klasöre karşı Isı/Hasat görevini kullanabilirim, ancak eski rotayı kullanmak istemiyorum.

Yeni iş akışı tabanlı yapı tanımında yeterince oynamadık, bu özel görevi nasıl ekleyeceğimi bilmiyorum.

Kurulum dosyası her kurulduğunda hasat çalıştırmam gerekiyor çünkü yüzlerce dosyayı el ile takip etmek istemiyorum.

+0

Aynı sorunu yaşıyorum; Varsayılan kurulum yeri olarak C: \ Inetpub \ wwwroot \ MyProject \ ayarlamaya çalışıyorum, ancak WiX bunu duymayacaktır. –

+0

Bazı geçici çözüm buldunuz mu? Teşekkürler –

+0

@SanjaMelnichuk: Ne yazık ki değil. Diğer projelere geçtiğimde daha fazla zaman harcamamıştım ama sanırım orada yapmaya çalıştığım şey, bazı XAML bilgisi ve TFS iş akışlarına aşinalık gerektirecektir. – Mrchief

cevap

9

Sorun, bileşenin otomatik olarak bir kılavuz oluşturmak için kullanamadığı TARGETDIR'de köklendirilmiş olmasından kaynaklanır. Sorunu önlemek için bu bileşenin üstündeki bir dizine Directory/@ComponentGuidGenerationSeed ekleyebilirsiniz. Bu özelliği ekleyerek, bileşenlerin yükseltmeler boyunca iki farklı dizine kurulmadığından emin olmanız gerekir.

Windows Installer'da, bileşenlerin yamalar, küçük yükseltmeler ve büyük yükseltmeler arasında değişmeyen bir kılavuza sahip olması gerekir. Bir rahatlık olarak, WiX, bileşenin dizin hiyerarşisini tohum olarak kullanarak sizin için bir version 5 UUID üretebilir. Ancak, TARGETDIR bunun için uygun değildir.

Nedeni, kurulumlar arasında TARGETDIR değişikliklerin değiştiğine inanıyor (en fazla boş alana sahip sürücüye ayarlanmış). Bileşen kurallarından biri "each component must be stored in a single folder". Büyük güncellemeler arasında TARGETDIR değiştiyse, aynı bileşeni ikinci bir klasöre yüklemeye çalışabilirsiniz.

+0

Başka bir Wix projesi hazırlayana kadar bu işe karışmamıştım ve sonra çözümünüzü hatırladım. Üzgünüm, kabul etmek o kadar uzun sürdü! :) – Mrchief

İlgili konular