我正在构建网站安装程序,在安装阶段我需要在IIS下创建一个应用程序池和一个网站。
在安装/卸载阶段,一切正常:IIS按预期配置。
现在我无法弄清楚如何在升级时获得良好的用户体验:实际上,setupkit会覆盖网站上的每个配置(即端口绑定)。
是否有可能指示Wix在更新期间不更改网站/应用程序池配置?
这里是代码:
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INETPUB" Name="Inetpub">
<Directory Id="INSTALLFOLDER" Name="MyWebSite">
<Component Id="MyWebSiteIssConfiguration" Guid="MY-GUID">
<Condition><![CDATA[NOT Installed]]></Condition>
<iis:WebAppPool Id="MyWebSiteAppPool"
Name="[APP_POOL_NAME]"
Identity="localService"
ManagedPipelineMode="Integrated"
ManagedRuntimeVersion="v4.0" />
<iis:WebSite Id="MyWebSiteWebsite" Description='[WEB_SITE_NAME]' Directory='INSTALLFOLDER' AutoStart='yes' StartOnInstall='yes'>
<iis:WebAddress Id="AllUnassigned" Port="[WEB_SITE_PORT]" />
<iis:WebApplication Id="MyWebSiteApplication" Name="[WEB_SITE_NAME][WEBSITE_ID]" WebAppPool="MyWebSiteAppPool"></iis:WebApplication>
<iis:WebDirProperties Id="MyWebSiteWebDirProperties" AnonymousAccess="no" WindowsAuthentication="yes" />
</iis:WebSite>
<CreateFolder/>
</Component>
</Directory>
</Directory>
</Directory>
答案 0 :(得分:0)
最后,我找到了符合我需求的解决方法。
首先,我将包含网站配置的组件(我的示例代码中的MyWebSiteIssConfiguration
)标记为Permanent='yes'
:这样就不会卸载网站。
此外,我已在网站上设置ConfigureIfExists='no'
,因此在升级期间,网站上的配置不会受到影响。