Это похоже на Как я могу создать MSI-файл для программы Java? (затмение) , но, в частности, касается и объединения JRE.
В настоящее время я работаю над созданием MSI для своего продукта, чтобы его можно было установить как дополнение к Windows Home Server. Установщик должен быть установщиком MSI без вывода сообщений.
Мой продукт зависит от Java 1.6. Я хочу связать Java внутри MSI, но не обязательно установить JRE, просто скопируйте файлы в каталог моего продукта и выполните их оттуда.
Первоначально я попытался установить JRE в любом случае в качестве первого шага. Я использовал тихий установщик JRE , однако оказалось, что из-за того, что JRE устанавливает себя через другой MSI, под прикрытием, правило one-MSI-Installation-Running-Once-Once было нарушено, и поэтому JRE не может быть установлен.
Так что я вместо этого перешел на копирование файлов JRE. Мне удалось создать MSI со всеми предметами, но он имеет колоссальные 60 МБ! Это около 33 МБ для моего приложения, а остальное - JRE. Мой обычный setup.exe, который объединяет JRE, занимает около 30 МБ, поэтому я предполагаю, что сжатие в последнем случае намного лучше (я также использую сжатие Pack200).
Я использую WiX для сборки MSI и включил сжатие.
Каков наилучший способ связать JRE с зависимым приложением внутри MSI?