Как отключить действие веб-сайта в Wix, если не выбраны веб-функции? - PullRequest
3 голосов
/ 11 ноября 2009

Действие Wix WebSite должно быть указано вне компонента , если вы хотите безопасно использовать веб-сайт по умолчанию (под безопасным подразумевается, что установщик не удалит сайт по умолчанию при удалении).

<Fragment>
    <iis:WebSite Id="DefaultWebSite" Description="Default Web Site" Directory="INSTALLDIR">
        <iis:WebAddress Id="AllUnassigned" Port="80" />
    </iis:WebSite>
</Fragment>

Мой установщик имеет множество функций, и некоторые из них включены только при установке IIS. Отключение функций, основанных на Условиях, работает нормально, и виртуальные каталоги или сайты не создаются, но во время установки MSI все еще пытается связаться с IIS из-за действия WebSite и не работает на компьютере без установленного IIS:

"Cannot connect to Internet Information Server. (-2137221164      )"

Я нашел кое-что о SKIPCONFIGUREIIS, но, похоже, это не работает в Wix 3.

Ответы [ 3 ]

3 голосов
/ 16 февраля 2010

Это спасло меня от большого горя! Просто хотел добавить, что вышеупомянутое пропустит конфигурацию IIS при удалении независимо от состояния установки. И.Е. если функция была установлена, виртуальный каталог не будет удален из IIS при удалении.

Мне кажется, это работает:

<InstallExecuteSequence>
    <!-- Disable ConfigureIIS if we don't need it: -->
    <Custom Action="ConfigureIIs" After="InstallFiles"><![CDATA[&Web=3 OR !Web=3]]></Custom>
</InstallExecuteSequence>
1 голос
/ 17 ноября 2009

Мне удалось решить эту проблему в Wix 3, используя поддержку условий пользовательских действий в InstallExecuteSequence. В этом примере предполагается, что функция «Интернет» является единственной, которая требует от нас выполнения действий IIS:

<InstallExecuteSequence>
    <!-- Disable ConfigureIIS if we don't need it: -->
    <Custom Action="ConfigureIIs" After="InstallFiles">(&amp;Web = 3)</Custom>
</InstallExecuteSequence>
0 голосов
/ 26 ноября 2009

Я только что посмотрел и нашел в сгенерированном WIX MSI условие NOT SKIPCONFIGUREIIS AND VersionNT > 400, связанное со строкой ConfigureIis в таблице InstallExecuteSequence.

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

<InstallExecuteSequence>
  <!-- Disable the ConfigureIIs action if we don't need it: --> 
  <Custom Action="CA.SkipConfigureIIs" 
          After="InstallFiles">NOT &amp;F.IisFeature = 3</Custom>
</InstallExecuteSequence>


<CustomAction Id="CA.SkipConfigureIIs"
              Property="SKIPCONFIGUREIIS"
              Value="1"
              Return="check" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...