Комплект инструментов WiX с общим размером контента> 2 ГБ - PullRequest
0 голосов
/ 22 марта 2019

Можно ли сделать установочный комплект WiX с общим объемом внутреннего MSI-файла и EXE-файла более 2 ГБ?В настоящее время в моем шаблоне .wxs у меня есть <chain> внутри <bundle>, который содержит несколько <MsiPackage>.Я не создал этот шаблон WiX самостоятельно, я просто исправляю / исправляю ошибки в унаследованном проекте, поэтому я не очень хорошо разбираюсь в наборе инструментов WiX.Во всяком случае, затем я создаю .wixobj из этого шаблона .wxs с помощью Candle Candle, а этот .wixobj, который я передаю light.exe.Кажется, что если общий размер содержимого для ссылки превышает 2 ГБ, light.exe завершается с ошибкой:

ошибка LGHT0306: ошибка (E_FAIL) была возвращена при завершении CAB-файла.Это чаще всего происходит при создании CAB-файла, содержащего более 65535 файлов.Либо уменьшите количество файлов в вашем инсталляционном пакете, либо разбейте файлы вашего инсталляционного пакета на несколько CAB-файлов с помощью элемента Media.

Я искал решение, и одним из предложений было использование <MediaElement>, ноэтот доступен только в теге <product>, который, я полагаю, не могу использовать в моей ситуации, потому что в готовый пакет встроен пользовательский загрузчик, и, насколько я понял, шаблон продукта wix не относится к приложениям загрузчика.Еще одно мнение, которое я нашел, состояло в том, что вы не можете создать пакет WiX с размером одного пакета более 2 ГБ, но это не совсем мой случай, потому что каждый пакет, который я собираю, не превышает 700 МБ.

Iуже пытались разделить <MsiPackage> на <PackageGroup> в отдельных <Fragment>, на которые ссылались в <Bundle> <chain> в <PackageGroupRef>, но это не помогло, light.exe выбрасываетта же ошибка.Я также нашел предложение попробовать поместить пакеты в отдельные <Container> s в <bundle>, но мне не удалось попробовать, потому что я не понимал, как это сделать, в документации по пакетам WiX просто упоминается, чтонекоторые контейнеры, но никогда не давали советов о том, как их использовать.

Я использую WiX 3.11

UPD: я просто хотел добавить некоторые пояснения.Моя цель - создать пакет, который будет представлять собой один файл .exe со всеми соответствующими файлами .cab и другими компонентами, встроенными в конечный пакет, поэтому предоставление пакета, состоящего из загрузочного файла .exe и нескольких внешних файлов .cab, на самом деле не является предпочтительнымвариант, даже если это может быть в x раз быстрее, если это не единственное решение в моем случае.

UPD 2: Кажется, что вы можете собрать пакет размером 2 ГБ +, он не запустится.Возможно, потому что выходной исполняемый файл - x86, и Windows не может запустить исполняемые файлы x86 размером более 2 ГБ.Мне не удалось сделать пакет x64, возможно, это сработало бы, но я так и не нашел, как это сделать.Полагаю, единственный вариант - позволить пользователям загружать недостающий контент, а пакет должен содержать только необходимые части.Спасибо всем за помощь.

1 Ответ

0 голосов
/ 23 марта 2019

Сжатые пакеты не могут превышать 2 ГБ. Burn поддерживает контейнеры объемом до 2 ГБ каждый, и только один контейнер может быть присоединен к самому пакету .exe.

...