WiX如何在主要升级时保持站点端口

问题描述:

<Component Id="IisComponent" Guid="someGuid" Win64="yes" KeyPath="yes"> 
    <iis:WebSite Directory="INSTALLDIR" AutoStart="yes" Id="WebSite" Description="someDescription" > 
    <iis:WebAddress Header="[SITEBINDINGHOST]" Id="WebSiteAddress" IP="*" Port="[SITEBINDINGPORT]" /> 
    <iis:WebApplication Id="WebApp" Name="someApplicationName" WebAppPool="AppPool" /> 
    <iis:WebDirProperties Id="DirProperties" WindowsAuthentication="yes" AnonymousAccess="no" LogVisits="yes" /> 
    </iis:WebSite> 
    <some other blocks /> 
</Component> 

我的意思是IIS中的站点绑定的实际当前值。 我已经通过使用自定义操作解决了类似的问题(在卸载前保存值,安装后恢复)。也许还有另一种方式?WiX如何在主要升级时保持站点端口

这是我做的:

在第一安装AppSearch将试图找到在给定的注册表项值,但它不会找到任何东西,则该属性将被设置为默认值。

在重大升级期间,AppSearch将在给定的注册表项中查找值,并将该属性设置为该值。当您启动升级安装程序和老版本卸载被前将设置

<Property Id="WEBSITEPORT" Value="80"> 
    <RegistrySearch Id="WebSitePortSearch" Type="raw" Root="HKLM" Key="$(var.RootKey)\$(var.IISWebSiteKey)" Name="Port"/> 
</Property> 

所有这些注册表项将出席会议。

现在,您需要在安装过程中创建的注册表项,像这样:

<Component Id="CommonWebSiteRegistry"> 
    <RegistryKey Root="HKLM" Key="$(var.RootKey)\IIS Config" Action="createAndRemoveOnUninstall"> 
     <RegistryValue Type="string" Name="Description" Value="[WEBSITEDESCRIPTION]"/> 
     <RegistryValue Type="string" Name="Port" Value="[WEBSITEPORT]"/> 
     <RegistryValue Type="string" Name="HostName" Value="[HOSTNAME]"/> 
     <RegistryValue Type="string" Name="AppPool" Value="[APPPOOLNAME]"/> 
     <RegistryValue Type="string" Name="AppPoolRuntimeVersion" Value="$(var.ASPRuntime)"/> 
     <RegistryValue Type="string" Name="PhisicalDir" Value="[WebSiteRoot]"/> 
    </RegistryKey> 
</Component> 

正如你可以看到你可以创建许多注册表项/值存储您的初始设置,你可以阅读与主要升级期间的安装程序一起使用。

UPDATE:

如果你想使用IIS当前配置的端口,你将需要使用自定义操作与我上面提到的解决方案相结合。

您的自定义操作将需要输入参数与“网站名称”,您将不得不从注册表中检索它,然后将其作为CustomActionData传递给您的CA.

一旦您检索到在IIS中配置的端口,您将需要使用新值更新您的[SITEBINDINGPORT]属性,之后我推荐的前一个实现将使用适当的值执行这个技巧。

+0

(对不起,因为我的英文不好)我已将端口值保存在注册表中。但是,如果我在网站设置中更改了端口值,则注册表中的值将为旧值,并且在升级时将被恢复。我必须保持绑定的当前值。 – 2014-11-26 05:55:35

+0

@ user3432369请查看我上面的更新。 – Rolo 2014-11-26 15:07:36