wix 3.x - не удалось загрузить XML-файл
У меня есть пакет WIX - созданный с использованием Wix Toolset 3.7, который странным образом завершается с ошибкой в конкретной среде со следующим сообщением:
ExecXmlFile: Ошибка 0x80070005: не удалось загрузить файл XML: \ sharep001 \ share \ IIS \ pre \ EAT \ Website \ CalculationService \ Web.config
MSI (70!FC) [11:15:37:491]: продукт: EAT 1.0.0.0 - ошибка 25531. Не удалось открыть файл XML \sharep001\share\IIS\pre\EAT\Website\CalculationService\Web.config, системная ошибка: -2147024891
Ошибка 25531. Не удалось открыть файл XML \sharep001\share\IIS\pre\EAT\Website\CalculationService\Web.config, системная ошибка: -2147024891
CustomAction ExecXmlFile вернул фактический код ошибки 1603 (обратите внимание, что это может быть не на 100% точно, если перевод произошел внутри песочницы)
Почему я говорю, что поведение странное, потому что,
- Тот же пакет, который я могу установить в локальном каталоге на веб-сервере, об ошибках не сообщается.
- Тот же пакет, который я могу установить в другом каталоге UNC, об ошибках не сообщается.
Почему это терпит неудачу? - Шаг преобразования XML вызывается только после создания каталога, удаления файлов, создания веб-сайта iis и т. Д. Поэтому трудно объяснить, почему, это не похоже на проблему с разрешениями.
Любая идея, как я могу отладить это?
2 ответа
Странно, что путь не содержит спецификацию корневого диска. Возможно ли, что этот файл находится на диске, отличном от того, где выполняется настраиваемое действие, и, следовательно, относительный путь не найден? Сначала я бы попытался указать полный путь к файлу и посмотреть, решает ли это проблему.
Для отладки вы можете пойти в хардкор и получить файлы.zip исходников и pdbs для используемой сборки набора инструментов WiX, а затем использовать переменную среды MsiBreak, чтобы присоединиться к настраиваемому действию.dll. Оттуда вы можете отлаживать через ExecXmlFile()
функция, чтобы увидеть фактический результат возврата. Вы также можете проверить машину непосредственно перед / после возникновения ошибки, чтобы увидеть, заблокирован ли файл или иным образом недоступен.
Удачи!
Проверьте, не содержит ли файл правильную кодировку UTF-8, по моей вине была недостающая спецификация. Не удалось открыть файл XML, системная ошибка: -2147024786