Как MSI определяет, какой сайт удалить при удалении
Я недавно столкнулся со следующим сценарием:
- Установите пакет MSI, созданный через WiX, который развертывает файлы и создает + настраивает веб-сайт в IIS (6)
- Сайт изменен вручную. Порт изменен с 81 на 80.
- Пакет удален.
Когда пакет удален, удаленный веб-сайт НЕ является тем, который был развернут. Вместо этого я видел, как он удалял веб-сайт по умолчанию, а также некоторые другие.
Я хотел бы знать, как пакет определяет, какой сайт удалить? Это, очевидно, не идентификатор IIS, как я первоначально думал.
1 ответ
Мы сделали это с помощью ключей реестра:
<Property Id="INBOUNDGATEWAY_REGPATH" Value="SOFTWARE\MyCompany\MyApp\$(var.VERSION)\InboundGateway" />
<Property Id="INSTALLEDWEBSITE">
<RegistrySearch Id="INSTALLEDWEBSITE" Root="HKLM" Key="[INBOUNDGATEWAY_REGPATH]" Name="WebSite" Type="raw" />
</Property>
<iis:WebSite Id='MyWebSite' SiteId='*' Description='[WEBSITENAME]' Directory='FOLDER_VDIR'>
<iis:WebAddress Id='WebSiteAddress' Port='[WEBPORT]'/>
</iis:WebSite>
<Directory Id="TARGETDIR" Name="SourceDir">
...
<Component Id="CPNT_INBOUNDGATEWAY_REGISTRY" Guid="etc..." DiskId="1">
<RegistryValue Id="INBOUNDGATEWAY_REGISTRY_WEBSITE" Type="string" Root="HKLM" Key="[INBOUNDGATEWAY_REGPATH]" Name="WebSite" Value="[WEBSITENAME]">
<Permission User="[LOCADMINSGROUP]" GenericAll="yes" />
<Permission User="[POOL_IDENTITY_USER]" Read="yes" GenericRead="yes" />
</RegistryValue>
<CustomAction Id="SetToInstalledWebSite" Property="WEBSITENAME" Value="[INSTALLEDWEBSITE]" />
<InstallExecuteSequence>
<Custom Action="SetToInstalledWebSite" After="SetWEBSITENAME">Installed And INSTALLEDWEBSITE</Custom>