Подтвердить что ты не робот

WiX: загадочная и трудно диагностируемая ошибка проверки ICE при сборке сервера сборки

Я пытаюсь интегрировать WiX в свое автоматизированное решение сборки, используя TFS 2010, работающий на Windows Server 2008 R2. Все казалось очень легким, и тогда я получаю следующее:

light.exe: Ошибка выполнения ICE action 'ICE01'. Наиболее распространенной причиной такого отказа ICE является неправильно зарегистрированный механизм сценариев. Подробнее см. http://wix.sourceforge.net/faq.html#Error217 и как решить эту проблему. Внешний регистратор сообщений UI не ожидал следующего строкового формата: "Не удалось получить доступ к службе установщика Windows. Это может произойти, если установщик Windows установлен неправильно. Обратитесь за помощью к вашему персоналу поддержки".

Это странно. Но эй! Они предоставили ссылку. Это должно помочь, правильно?

Ошибка LGHT0217
В WiX v3 Light автоматически запускает проверку - внутренние оценщики согласованности Windows (ICE) - после каждой успешной сборки. Валидация - отличный способ поймать общие ошибки авторинга, которые могут привести к проблемам с обслуживанием, поэтому его теперь запускают по умолчанию. К сожалению, общая проблема возникает в Windows Vista и Windows Server 2008, что может привести к сбою ICE. Подробнее о причине и о том, как ее исправить, см. В блоге Heath Stewart и Aaron Stebner WebLog.

Совсем нет. Эти сообщения просто описывают ситуацию, связанную с регистрацией механизма сценариев, и условия, которые они описывают, отсутствуют. Тем не менее, я столкнулся с Re: (WiX-users) Почему я получаю сбои ICE из учетной записи службы? (2010-01-14) что, казалось, указывает, что если бы я использовал учетную запись домена для запуска службы установщика Windows, это сработало бы. Казалось, что это стоит того.

"По какой-то причине в Windows 2008 (я не тестировал Vista, XP, 2003, 7 или 2008 R2) служба MSI доступна только для логинов, которые либо имеют административный доступ или логины, которые являются" интерактивными ". Вход в систему из учетных записей служб, которые не имеют административных прав, не могут доступ к службе msi и, следовательно, не может выполнять тесты ICE."

Однако при попытке запустить службу установщика Windows с моей учетной записью службы сборки:

Windows не удалось запустить службу установщика Windows на SKILLET-1. Ошибка 1297: привилегия, которой служба должна функционировать должным образом, не существует в конфигурации учетной записи службы. Для просмотра конфигурации службы и конфигурации учетной записи вы можете использовать оснастку консоли управления Microsoft MMC (services.msc) и оснастку MMC локальной безопасности (secpol.msc).

ОК, Windows, так что вы говорите мне, что у моей учетной записи службы сборки отсутствует некоторое двусмысленное разрешение, необходимое для запуска службы. Сделать это администратором необходимо исправить это право? Нет, это тоже не работает.

Итак, я вернусь обратно в локальную систему для учетной записи службы установщика Windows. На этот раз я сделал службу сборки локальным администратором, и вот, успех! Это вряд ли решение.

Моя следующая идея состояла в том, чтобы попытаться изолировать набор разрешений, который на самом деле потребовал бы служба построения, чтобы это сделать. Это было бы хорошим решением вместо того, чтобы добавлять дополнительные учетные записи в набор администраторов. Шаг 1: перейдите в локальную политику безопасности и добавьте учетную запись службы сборки ко всем разрешениям, предоставляемым в настоящее время администраторам. Теоретически это должно позволить сборке преуспеть, и оттуда я мог бы выборочно удалять разрешения, пока не выделил все разрешения, которые должны быть сохранены, чтобы это удалось.

К сожалению, даже при всех одинаковых разрешениях сборка будет по-прежнему терпеть неудачу, если учетная запись службы сборки не будет членом локальных администраторов. Почему это? Какие еще вещи, кроме LSP, зависят от группы администраторов, которую я мог бы изменить, чтобы привести мою учетную запись службы сборки в соответствие с администраторами?

Текущий вывод: служба сборки должна быть администратором, чтобы избежать ошибок проверки ICE.

Открытые вопросы:

  • Почему моя идея изоляции разрешений не работала?
  • Что это за таинственный Error 1297 бросается при запуске Windows Installer Service в качестве пользователя домена? Почти нет документации, которую я могу найти на этом.
4b9b3361

Ответ 1

У меня тоже была та же проблема. После некоторых борется и googling я пришел к решению, что подавление ICE-валидации в проекте WiX сделает компиляцию проекта.