2016-04-05 3 views
0

Я использую wix для создания моего установщика MSI. установщик создаст новый пул приложений и виртуальный каталог в IIS для запуска моего веб-приложения.WIX-поддержка нескольких экземпляров веб-приложения на IIS

Прямо сейчас, я пытаюсь одновременно использовать несколько экземпляров веб-приложения на одной машине (с той же версией или с более высокой версией).

-Это такое поддерживается в Wix?

-Можно ли динамически создавать несколько пулов приложений и виртуальный каталог при каждой установке? Потому что в настоящий момент имя файла appPool, и виртуального каталога, и папки назначения жестко закодированы внутри файла Product.WXS.

ответ

1

Я думаю, что вы не можете даже выполнить настройку несколько раз, она просто попытается удалить, изменить или восстановить предыдущую установку или выполнить обновление. Но в отношении пула приложений или имя веб-сайта вы можете указать его в процессе установки в вашем диалоге выбора признаков, чтобы иметь текстовое поле, где вы можете записать имя веб-сайта или пула приложений

<Control Id="WebsiteName" Type="Text" X="..." Y="..." Width="..." Height="..." Text="Website name :" Indirect="no" > 
     <Condition Action="hide">Installed</Condition> 
    </Control> 
    <Control Id="WebsiteName" Type="Edit" X="..." Y="..." Width="..." Height="..." Property="WEBSITENAME" Text="{50}" Indirect="no" > 
     <Condition Action="hide">Installed</Condition> 
</Control> 

Чем вам нужно указать ваше имущество в Product.wxs

<Property Id="WEBSITENAME" Value="YourDefaultWebSiteName" Secure="yes"> 
    <RegistrySearch Id="FindWebSiteName" Root="HKCU" 
        Key="SOFTWARE\YourCompany\YourProduct" 
        Name="WebsiteName" Type="raw"/> 
</Property> 
<Property Id="APPPOOL" Value="0" Secure="yes"> 
    <RegistrySearch Id="FindWixSetupInstallation" Root="HKCU" 
        Key="SOFTWARE\YourCompany\YourProduct" 
        Name="webAppPool" Type="raw"/> 
</Property> 

чем вы должны указать его в настройках, где вы создаете приложение бассейн и название сайта

<iis:WebSite Id="DefaultWebSite" Description="Default Web Site"> 
    <iis:WebAddress Id="AllUnassigned" Port="80" /> 
</iis:WebSite> 
<DirectoryRef Id="YourDirectory" > 
    <Component Id="CMP_CONFIG" Guid="{YOURGUID}" KeyPath="yes"> 
    <iis:WebVirtualDir Id="WebsiteName" Alias="[WEBSITENAME]" Directory="YourDirectory" WebSite="DefaultWebSite"> 
     <iis:WebApplication Id="YourApplicationApp" Name="[WEBSITENAME]" WebAppPool="[WEBSITENAME]" /> 
     <iis:WebDirProperties Id="YourApplicationDirProp" Script="yes" Execute="yes" Read ="yes" DefaultDocuments="Default.aspx"/> 
    </iis:WebVirtualDir> 
    </Component> 
</DirectoryRef> 

И если вы хотите создать ярлык на рабочем стол

<DirectoryRef Id="DesktopFolder"> 
     <Component Id="YourWebsiteAppDesktopShortcut" Guid="{YOURGUID}">  
     <RegistryValue Root="HKCU" 
         Key="SOFTWARE\YourCompany\YourProduct" 
         Name="YourWebsiteApp" 
         Type="integer" 
         Value="1" 
         KeyPath="yes"/> 

     <util:InternetShortcut Id="WebSiteDesktopShortcut" 
           Directory="DesktopFolder" 
           Name="YourWebsiteAppName" 
           Target="http://localhost/[WEBSITENAME]/" 
           Type="url" /> 
     </Component> 
    </DirectoryRef> 

И вам просто нужно, чтобы зарегистрировать все эти ссылки на компоненте идентификаторов в вашем Product.wxs

+0

Вы можете иметь несколько экземпляров вашего приложения, если у вас есть новый GUID для каждый установочный пакет. – error505

+0

Отсутствует набор WebsiteName и webAppPoll? – reptile

Смежные вопросы