Как стать автором
Обновить

Создание CAB для Windows Mobile с большим количеством файлов

Время на прочтение1 мин
Количество просмотров1.9K
Столкнулся недавно с неожиданной проблемой с генерацией CAB. Для генерации используется CabWiz.exe. Упаковщик стал ругаться на неверные символы в названии каталогов «setup.inf contains DirIDs, which are not supported».

Проект для Windows Mobile компилировался и упаковывался в CAB. Утром, когда собирался тестовый пакет, всё прошло на ура. Днём изменений в проекте сборки не было. Вечером CAB не собрался. Начали думать, что всё же где-то некорректно обрабатываются переменные со знаком процента, или вставляются в .inf неправильные пути в раздел DestinationDirs.

После разбора оказалось, что версия, которая поставляется вместе с Visual Studio 2008, имеет ряд ограничений. Одно из этих органичений: максимальное количество обрабатываемых файлов — 262. Т.е. если в архив складывается 262 файла, то всё хорошо и на выходе будет корректный СAB. Если же в проекте появляется 263 и больше файлов, то будет выдаваться ошибка описанная выше.

Решение оказалось достаточно простым. В WM 6 SDK есть правильный cabwiz.exe, где эта проблема устранена.
1) Итого пользуемся теперь c:\Program Files\Windows Mobile 6 SDK\Tools\CabWiz\Cabwiz.exe
2) Можно c:\Program Files\Microsoft Visual Studio 9.0\SmartDevices\SDK\SDKTools\CabWiz.exe заменить на новый из sdk (а также заменить файл CabWiz.ddf) и тогда можно спокойно продолжить собирать CAB прям из студии.

Кстати, не забывайте использовать переменные (макро-переменные) для CAB, они сильно облегчают жизнь.
http://www.christec.co.nz/blog/archives/262
Теги:
Хабы:
Всего голосов 9: ↑7 и ↓2+5
Комментарии0

Публикации