2012-07-27 17 views
7

WiX yükleyici, silverlight web uygulamasını yükler. 32 veya 64 bit uygulama havuzu altında çalışabilir. Ancak kurulum tamamlandığında, seçilen uygulama havuzunun her zaman 32 bit uygulamaları Etkinleştir olarak ayarlandığını görüyorum. 64 bitlik havuzlar için bile. Daha önce yüklenmiş 64 uygulama için mevcut havuzu değiştirebildiğinden, suteable değildir. Bu parametreyi kesinlikle değiştirmem. Problemin nedeni ne olabilir?WiX: Yükleyici her zaman 32bit uygulamasını etkinleştirmek için AppPool'u değiştirir

kod örneği ekledi:

<Component Id="WebAppVDirComponent" 
    Guid="C7A4B0E8-2389-4A2A-B285-96960BEE1C52" KeyPath="yes"> 
    <Condition><![CDATA[RBGROUP_HOSTING = "iis"]]></Condition> 
     <iis:WebVirtualDir Id="VDir" 
       Alias="[WEB_APP_NAME]" 
       Directory="INSTALLDIR" 
       WebSite="TheWebSite" > 
     <iis:MimeMap Id="SilverlightMimeType" Extension=".xap" Type="application/x-silverlight-app" /> 
     <iis:WebApplication Id="WorkWebApplication" 
       Name="[WEB_APP_NAME]" WebAppPool="TheAppPool"/> 
     </iis:WebVirtualDir> 
     <iis:WebAppPool Id="TheAppPool" Name="[APP_POOL_NAME]" ></iis:WebAppPool>   
     <CreateFolder/> 
</Component> 

cevap

15

Bu bence, çok zarif bir şekilde tasarlanmıştı. Eğer Win64="yes" olarak işaretlenen <Component> için <iis:WebAppPool> eleman beyanı yerleştirirseniz

, uygulama havuzu false ayarlı Enable32bit bayrağıyla oluşturulacaktır. Aksi halde (varsayılan olarak), Enable32bittrue olarak ayarlanmış olarak oluşturulur.

Yüklemeyle birlikte uygulama havuzunu oluşturmadığınızda bunun nasıl davranacağından emin değilim, ancak bunun yerine mevcut olanı referans alın. Bu bayrağı hiç değiştirmemeyi beklerdim. Tam olarak nasıl çalıştığını öğrenmek için bunu deneyebilirsiniz. Ve bir yan not: Mevcut uygulama havuzuna veya web sitesine yüklemekten kaçınmak istiyorum. Bu, bakımı çok daha zor - makineyi kaldırma işleminden sonra "ön yükleme" durumunda bırakmanız gerektiğini unutmayın. Bu, özel eylemlerle değiştirdiğiniz her şeyin durumunu yedeklemeniz/geri yüklemeniz gerektiği anlamına gelir ... Brrr ...

+0

Teşekkür ederim, Yan. Hmm .... evet, ilginç ... Kullandığım kodu ekledim. – Oleg

+0

Böylece, eklediğiniz kod, Enable32bit öğesi "true" olarak ayarlanmış uygulama havuzu oluşturacaktır. Tersi durumlu başka bir bileşen eklemek isteyebilirsiniz, yani, VersionNT64 ve Win64 özniteliğini yes olarak ayarlayıp, aynı şeyleri ona ekleyin. –

+0

Evet, yeni bir havuz oluşturduğumda sorun yok. Ancak sorun, kullanıcının mevcut olanı (64-bit) seçmesi ve bu havuzun daha sonra 32-bit olarak değiştirilmesidir. Havuzu seçmek için özel .NET işlevlerini kullanıyorum. – Oleg