Вы устанавливаете свой пакет на машине, где IIS не установлен. Чего бы вы ожидали? :)
Если серьезно, WiX IIsExtension (тот, который определяет элемент WebSite) использует компонент API IIS, чтобы фактически выполнить свою работу. Для WiX v3.0 для корректной работы требуется даже включение совместимости IIS 6 в IIS 7.
Ваш компонент, содержащий элемент WebSite, не подготовлен. это означает, что он всегда будет установлен. Когда он установлен, IIsExtension пытается создать определенный в нем веб-сайт (если мы расскажем об этом кратко).
Итак, я бы порекомендовал вам сделать следующее (если вы хотите просто пропустить часть IIS вашего установщика на таких машинах):
- добавить условие запуска, чтобы проверить, установлен ли компонент IIS (вы можете положиться на свойство IISMAJORVERSION, определенное самим IIsExtension)
- условие вашего компонента (или функции), который зависит от IIS, с условием "НЕ IISMAJORVERSION"
В результате, когда свойство IISMAJORVERSION не установлено (IIS не установлен), ваш компонент не будет запланирован для установки, а настраиваемые действия IIS не будут выполняться.
P.S. Свойство SKIPCONFIGUREIIS, которое я изначально имел в виду, является переключателем «все или ничего» и не подходит для вашего случая.