WiX: Мистериозни и трудни за диагностициране грешки при валидиране на ICE при изграждане на сървър за изграждане

Опитвам се да интегрирам WiX в моето решение за автоматизирано изграждане, като използвам TFS 2010, работещ на Windows Server 2008 R2. Всичко изглеждаше много лесно и тогава разбирам това:

light.exe: Грешка при изпълнение на ICE действие „ICE01“. Най-честата причина за този вид повреда на ICE е неправилно регистрирана скриптова машина. Вижте http://wix.sourceforge.net/faq.html#Error217 за подробности и как да решим този проблем. Следният формат на низ не се очакваше от регистратора на външни съобщения на потребителския интерфейс: „Услугата за инсталиране на Windows не може да бъде осъществена. Това може да се случи, ако програмата за инсталиране на Windows не е правилно инсталирана. Свържете се с вашия персонал за поддръжка за помощ.“.

Това е странно. Но хей! Дадоха линк. Това трябва да помогне, нали?

Грешка LGHT0217
В WiX v3, Light автоматично изпълнява проверка – Windows Installer Internal Consistency Evaluators (ICE) – след всяко успешно компилиране. Валидирането е чудесен начин за улавяне на често срещани грешки при авторството, които могат да доведат до проблеми с услугата, поради което сега се изпълнява по подразбиране. За съжаление, има често срещан проблем, който възниква в Windows Vista и Windows Server 2008, който може да доведе до отказ на ICE. За подробности относно причината и как да я поправите вижте блога на Хийт Стюарт и уебдневника на Арън Стебнър.

Въобще не. Тези публикации просто описват ситуация, включваща регистрация на машина за скриптове, и условията, които описват, не са налице. Въпреки това попаднах на Re: (WiX -users) Защо получавам ICE грешки при изграждане от акаунт за услуга? (2010-01-14), което изглежда показва, че ако използвам акаунт на домейн, за да стартирам услугата Windows Installer, тя ще работи . Звучеше така, сякаш си струва да опитаме.

„По каквато и да е причина в Windows 2008 (не съм тествал Vista, XP, 2003, 7 или 2008 R2) услугата MSI е достъпна само от потребителски имена, които имат администраторски достъп или са „интерактивни“. от акаунти за услуги, които нямат административни привилегии, нямат достъп до услугата msi и следователно не могат да изпълняват ICE тестове."

Въпреки това, когато се опитвате да стартирате услугата Windows Installer с моя акаунт за услуга за изграждане:

Windows не можа да стартира услугата Windows Installer на SKILLET-1. Грешка 1297: Привилегия, която услугата изисква, за да функционира правилно, не съществува в конфигурацията на акаунта на услугата. Можете да използвате конзолната добавка Services Microsoft Management Console (MMC) (services.msc) и добавката Local Security Settings MMC (secpol.msc), за да видите конфигурацията на услугата и конфигурацията на акаунта.

Добре, Windows, значи ми казваш, че в моя акаунт за услуга за компилация липсва някакво двусмислено разрешение, от което се нуждае, за да стартира услугата. Правенето му администратор трябва да поправи това, нали? Не, това също не работи.

Така че се връщам обратно към локалната система за акаунта на услугата Windows Installer. Този път направих услугата за изграждане на локален администратор и ето, успех! Това обаче едва ли е решение.

Следващата ми идея беше да се опитам да изолирам набора от разрешения, които услугата за изграждане действително ще изисква, за да направи това. Това би било хубаво решение, вместо да се налага да добавяте още акаунти към администраторския набор. Стъпка 1: влезте в местната политика за сигурност и добавете акаунта за услуга за изграждане към всички разрешения, дадени в момента на администраторите. На теория това би трябвало да позволи компилацията да успее и оттам бих могъл избирателно да премахна разрешенията, докато не изолирам всички разрешения, които трябва да се държат, за да успее.

За съжаление, дори и с всички същите разрешения, изграждането пак ще се провали, освен ако акаунтът за услугата за изграждане не е член на локални администратори. Защо е това? Кои други неща освен LSP имат зависимости от администраторската група, които бих могъл да променя, за да приведа моя акаунт за услуга за изграждане до еквивалентност с администраторите?

Текущо заключение: услугата за изграждане трябва да бъде администратор, за да се избегнат грешки при валидиране на ICE.

Отворени въпроси:

  • Защо моята идея за изолиране на разрешения не проработи?
  • Какво представлява този мистериозен Error 1297, който се хвърля при стартиране на Windows Installer Service като потребител на домейн? Няма почти никаква документация, която мога да намеря за това.

person bwerks    schedule 27.09.2010    source източник
comment
Току-що публикувах констатациите си в stackoverflow.com/q/1064580/33499 Надявам се, че ще помогне.   -  person imagi    schedule 15.03.2012
comment
Току-що се натъкнах на това днес с WiX 3.8 на Win 8.1 Agent платформа. Не се натъкнах точно на същите проблеми като вас, но настроих този по същия начин като всички други агенти, които имам, с изключение на това, че този е в домейн. Възможно ли е това да е виновникът? Ако е така, как го заобиколихте?   -  person kayleeFrye_onDeck    schedule 19.05.2015


Отговори (1)


И аз се сблъсках със същия проблем. След известно мъчение и гуглене стигнах до решението, че потискането на валидирането на ICE в проекта WiX ще накара проекта да се компилира.

person Sunil Agarwal    schedule 27.03.2011