Можно ли сделать установочный комплект 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, возможно, это сработало бы, но я так и не нашел, как это сделать.Полагаю, единственный вариант - позволить пользователям загружать недостающий контент, а пакет должен содержать только необходимые части.Спасибо всем за помощь.