Я бы придерживался CAB как пакета, поскольку даже безголовые устройства могут использовать инструмент извлечения CAB. Если вы архивируете его, то вам нужно добавить библиотеку поддержки и приложение ZIP. CAB также имеет возможность добавлять записи реестра и определять гораздо больше разрозненных целевых расположений, чем zip (я хочу x.dll в \ Windows, но prog.exe в моей папке с программой - попробуйте это с ZIP).
Следует иметь в виду, что wceload (экстрактор CAB) по умолчанию использует пользовательский интерфейс, поэтому вы захотите использовать для него такие вещи, как ключ / noui.
Если вы действительно безголовый, это может и не быть проблемой (не делали этого в течение длительного времени), но довольно распространенная конфигурация «без головы» имеет поддержку дисплея, и либо дисплей просто не подключен, либо является чем-то вроде NOP VGAFLAT водитель. Это позволяет вам запускать оболочку и иметь доступ ко всем приятным API-интерфейсам оболочки, но добавляет к проблеме, что GWES будет отображать диалоги на несуществующем дисплее.
OpenNETCF также имеет CAB Installer SDK, который можно использовать для полного удаления любого пользовательского интерфейса, создав собственное приложение установщика. Это может или не может быть полезно в зависимости от того, как и когда происходит установка (например, через HKLM \ Init или otehr).