Wix: один MSI вместо кабины MSI +

163

Мой проект Wix создает install.msi и cab1.cab. Как я могу сделать так, чтобы все связывалось с MSI? Я, вероятно, буду использовать 7-zip SFX, чтобы обойти это, но я видел другие приложения только с одним msi.

wtjones
источник

Ответы:

248

Вы не опубликовали ни одного источника, но я предполагаю, что в вашем файле wxs есть элемент Media. Просто установите для атрибута EmbedCab значение «да».

Кристофер Пейнтер
источник
8
У меня был пустой элемент MediaTemplate, но я заменил его следующим: <Media Id = "1" Cabinet = "Cab1.cab" EmbedCab = "yes" /> Спасибо!
августа
124
Обратите внимание, что вы можете добавить EmbedCab="yes"к MediaTemplateэлементу для достижения этой цели.
Джефф Йейтс
10
MediaTemplate не был доступен до WiX 3.6. wtjones не упомянул, какую версию WiX он использовал, поэтому я упомянул способ, который будет работать для большего количества людей.
Кристофер Пейнтер
57

Set EmbedCab="yes".

Начиная с WIX 3.8:

<MediaTemplate EmbedCab="yes" />

До WIX 3.8:

<Media Id="1" Cabinet="cab1.cab" EmbedCab="yes" />
Филипп Хофманн
источник
24

Используйте это так:

<Media Id="1" Cabinet="CabFileName.cab" EmbedCab="yes" />

Также эта статья описывает другие способы сделать это.

Sid
источник