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

Ошибки проверки WiX ICE

У меня возникают некоторые странные проблемы с WiX на моей локальной машине. Проблема прерывистая, но после нескольких перестроек решения проект WiX начинает бросать ошибки проверки ICE.

Если я перейду в мою папку AppData\Local\Temp и удалю все временные папки, содержащие MSI, решение снова скомпилируется. Через некоторое время проблема снова начнется. Необходимость продолжать очистку временных папок не является устойчивым или удовлетворительным решением.

Кто-нибудь еще столкнулся с этой проблемой? Коды ошибок проверки всегда всегда являются комбинацией ICE30, ICE38, ICE64 и ICE91

Update:

В соответствии с запросом, вот записи от последнего сбоя:

ошибка LGHT0204: ICE38: Внутренняя ошибка ICE 1002. Возвращенный API: Ошибка 1615.
LGHT0204: ICE38: Ошибка 2235:/OU.AppFramework.Includes.msi, _Profile, UPDATE Directory SET _Profile= 0 ошибка LGHT0204: ICE64: Внутренняя ошибка ICE 1001. API Возвращено: 1615.
Ошибка LGHT0204: ICE64: Ошибка 2242: OU.AppFramework.Includes.msi, _Profile, ALTER TABLE Directory ADD _Profile КОРОТКОЕ ВРЕМЯ ВРЕМЕНИ
Ошибка LGHT0204: ICE91: ICE Внутренняя ошибка 1001. Возвращенный API: 1615. Ошибка LGHT0204: ICE91: Ошибка 2242: OU.AppFramework.Includes.msi, _Profile, ALTER TABLE Directory ДОБАВИТЬ _Profile КРАТКОЕ ВРЕМЯ ВРЕМЕНИ

Интересно, что этот провал произошел до того, как я покинул офис вчера вечером, и решение скомпоновалось, когда я пришел этим утром. Поскольку он, кажется, сосредоточен в каталоге temp, где MSI создается WiX, может ли это быть процессом сборки, блокирующим файл?

Обновление 2:

И теперь мы вернулись к более чем 600 ошибкам, в основном повторяя эту ошибку:

ошибка LGHT0204: ICE30: Внутренняя ошибка ICE 100. Возвращенный API: 1615.
ошибка LGHT0204: ICE30: ошибка 2235: AppFramework.Includes.msi, _ICE30SFN, SELECT Directory_Parent, Directory, DefaultDir, _ICE30SFN, _ICE30LFN FROM Directory ГДЕ Directory. Directory =? И Directory_Parent < & le;

Обновление 3:

Проблема все еще существует даже после попытки предложения @limpan. Есть пара предупреждений, выдаваемых светом, которые вызваны блокировкой выходной папки MSI, когда свет пытается получить доступ к MSI:

Предупреждение 549 Каталог '\ AppData\Local\Temp\2opu3hxf' используется и не может быть удален. light.exe

4b9b3361

Ответ 1

Попробуйте добавить <RunWixToolsOutOfProc>true</RunWixToolsOutOfProc> в файл проекта WiX.

У нас была такая же проблема на некоторое время, и мы пробовали различные обходные пути, включая удаление временных файлов и настройку переменной среды msbuild. Все они работали некоторое время, но в конце концов (иногда через несколько дней) проблема снова вернулась.

Я заметил, что на моей машине devenv.exe был процессом, который блокировал файлы, которые light.exe пытался удалить. Я также наткнулся на несвязанный поток, в котором упоминалось об этом проекте, чтобы заставить инструменты WiX не работать. Я думал, что это может стоить попробовать, и, похоже, вылечило эту проблему для нас (до сих пор...)

Ответ 2

У меня была эта проблема, и я решил ее в своей среде.

Короткий ответ:

Добавьте переменную окружения MSBUILDDISABLENODEREUSE=1 и перезапустите Visual Studio

Длинный ответ:

Во время сборки было предупреждение, которое я сначала не видел, так как я слишком сфокусировался на ошибке:

Не удалось удалить временный каталог: C:\Users [имя_пользователя]\AppData\Local\Temp\5 [uniqueFolderName] light.exe

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

Оказалось, что во время сборки запускается много процессов MSBuild.exe, а затем снова не закрывается. Вы можете узнать больше о причине этого и о том, что вы можете сделать, чтобы изменить это поведение в вопросе msbuild.exe, оставаясь открытым, блокируя файлы.

Этот поток: он и решение в этом потоке:

Я надеюсь, что этот ответ может помочь кому-то другому.

Ответ 3

Для ICE30: Внутренняя ошибка ICE 100. Возвращенный API: 1615, попробуйте это и посмотрите, работает ли он:

  • Закройте все экземпляры Visual Studio (возможно, это просто важно, но на всякий случай)
  • Перейдите к C:\Documents and Settings\\****user id****\\Local Settings\Temp\.
  • Очистите все папки, которые выглядят так: 's12qgaks'. В основном он содержит файлы MSI.
  • Откройте решение и перекомпилируйте.

Удачи!

Ответ 4

Я тоже столкнулся с такой проблемой. В свойствах проекта откройте "Настройки инструмента" и нажмите "Отказаться от подтверждения ICE".

Enter image description here

Ответ 5

Для меня MSBUILDDISABLENODEREUSE = 1 (или/nr: false в командной строке) не решило проблему. Но <RunWixToolsOutOfProc> true </RunWixToolsOutOfProc> выполнил свою работу.

Ответ 6

У меня была такая же проблема. Это оказалось моим антивирусным программным обеспечением (OfficeScan). У него были заблокированы промежуточные файлы, созданные Light.exe, и процесс проверки не удался. Исключение временной папки из проверки на вирусы или отключение проверки ICE не является приемлемым решением.

Если у кого-то есть лучшее решение. Я бы хотел знать.