2012-07-27 66 views
7

WiX安装程序将安装Silverlight Web应用程序。它可以在32或64位应用程序池下工作。但是,当安装完成后,我发现所选的应用程序池始终设置为启用32位应用程序。甚至对于64位池。它不是完美的,因为它可以改变以前安装的64个应用程序的现有池。 我没有明确改变这个参数。问题的原因可能是什么?WiX:安装程序始终更改AppPool以启用32位应用程序

的代码示例说:

<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> 

回答

15

这已经设计了非常优雅的方式,在我看来。

如果将<iis:WebAppPool>元素声明标记为Win64="yes"<Component>,应用程序池将与Enable32bit标志设置为false创建。否则(即默认情况下),它将被创建为Enable32bit,设置为true

我不确定当你不用你的安装创建应用程序池时它将如何工作,而是参考现有的应用程序池。我希望它根本不会改变这个标志。你可以试验一下,看看它是如何工作的。

并提醒:我会避免安装到现有的应用程序池或网站。这更难以维护 - 请记住,您必须在卸载后让机器处于“预安装”状态。这意味着你将不得不保持备份/恢复状态的一切你改变与自定义操作... Brrr ...

+0

谢谢,严。嗯....是的,它很有趣......我添加了我使用的代码。 – Oleg 2012-07-27 14:50:08

+0

因此,您添加的代码将创建具有Enable32bit设置为'true'的应用程序池。您可能想要添加具有相反条件的另一个组件,即将VersionNT64和Win64属性设置为yes,并将所有相同的东西添加到它。 – 2012-07-27 20:00:39

+0

是的,当我创建一个新的池没有问题。但问题是,当用户选择现有的(64位),然后这个池改为32位。我使用自定义.NET函数来选择池。 – Oleg 2012-07-29 17:09:41

相关问题