Работа с CAB архивами
От: hayder Россия www.animabilis.com
Дата: 28.01.08 05:55
Оценка:
Добрый всем день.
Поставлена задача.
Из инсталлятора MSI достать CAB c установочными файлами.
Заменить в этом CAB архиве пару файлов и обратно засунуть в инсталлятор MSI.
Столкнулся с такой проблемой. После перепаковки CAB архива инсталлятор перестает работать.
Сообщение об ошибке:
The file 'cleverlock.dll' cannot be installed because the
file cannot be found in cabinet file 'disk1.cab'. This could
indicate a network error, an error reading from the
CD-ROM, or a problem with this package.
Для работы с CAB пользовался CABARC.EXE и пробовал Cabinet File (*.CAB) Compression and Extraction с codeproject
http://www.codeproject.com/KB/files/CABCompressExtract.aspx

Извлечение и возврат CAB работают нормально, проверял.
Если не перепаковывать CAB то все работает нормально.
Так же если я в кабе заменяю нужные файлы в Total Commander то тоже все работает.
Думаю дело в CABARC.EXE. И CAB файл создаваемый CABARC.EXE и в Total Commander отличается по размеру.

Винрар и прочие архиваторы нормально работают с созданным CABARC.EXE архивом, а вот инсталлятор его кушать не хочет.
Может кто нибудь сталкивался с такой проблемой?
Может кто знает еще какие либо небольшие утилиты или с++ код для работы с CAB?
Желательно что бы там была возможность замены фалов в существующем архиве.
Re: Работа с CAB архивами
От: Аноним  
Дата: 29.01.08 02:02
Оценка:
Здравствуйте, hayder, Вы писали:

H>Винрар и прочие архиваторы нормально работают с созданным CABARC.EXE архивом, а вот инсталлятор его кушать не хочет.


Необходимо в msi подправить хэши для подменённых файлов. Таблица называется 'MsiFileHash', подправить можно, например, с помощью Orca.
Re[2]: Работа с CAB архивами
От: hayder Россия www.animabilis.com
Дата: 29.01.08 05:14
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Необходимо в msi подправить хэши для подменённых файлов. Таблица называется 'MsiFileHash', подправить можно, например, с помощью Orca.


Спасибо за ответ, но слава богу у меня в проекте этой таблицы нет,а то бы вся автоматизация к черту бы пошла.
Проблему решил удалив и заново подключив все файлы в проекте инсталятора.
Честно говоря не понял почему все заработало.
Re[3]: Работа с CAB архивами
От: nesesser Удмуртия  
Дата: 29.01.08 07:14
Оценка: :)
Здравствуйте, hayder, Вы писали:
H>Честно говоря не понял почему все заработало.

C инсталлятами это нормальное состояние — "Уфф, заработало!.. Интересно, почему?")
Re[4]: Работа с CAB архивами
От: hayder Россия www.animabilis.com
Дата: 29.01.08 07:22
Оценка:
Здравствуйте, nesesser, Вы писали:

N>C инсталлятами это нормальное состояние — "Уфф, заработало!.. Интересно, почему?")

Пока нодом пользовался никаких проблем не испытывал.
Как на MSI перешел так регулярно глюки, один другого веселей.
Хотя у него очень много плюсов.
Re: Работа с CAB архивами
От: Аноним  
Дата: 02.06.09 09:48
Оценка:
Для инсталлятора важен порядок файлов в кабе. Что бы правильно перепаковать каб
нужно посмотреть таблицу файлов в MSI с помощью ORCA.EXE например. И запаковывать (добавлять) файлы в каб в той же последовательности как они указаны в этой таблице для данного каба.

Здравствуйте, hayder, Вы писали:

H>Добрый всем день.

H>Поставлена задача.
H>Из инсталлятора MSI достать CAB c установочными файлами.
H>Заменить в этом CAB архиве пару файлов и обратно засунуть в инсталлятор MSI.
H>Столкнулся с такой проблемой. После перепаковки CAB архива инсталлятор перестает работать.
H>Сообщение об ошибке:
H>The file 'cleverlock.dll' cannot be installed because the
H>file cannot be found in cabinet file 'disk1.cab'. This could
H>indicate a network error, an error reading from the
H>CD-ROM, or a problem with this package.
H>Для работы с CAB пользовался CABARC.EXE и пробовал Cabinet File (*.CAB) Compression and Extraction с codeproject
H>http://www.codeproject.com/KB/files/CABCompressExtract.aspx

H>Извлечение и возврат CAB работают нормально, проверял.

H>Если не перепаковывать CAB то все работает нормально.
H>Так же если я в кабе заменяю нужные файлы в Total Commander то тоже все работает.
H>Думаю дело в CABARC.EXE. И CAB файл создаваемый CABARC.EXE и в Total Commander отличается по размеру.

H>Винрар и прочие архиваторы нормально работают с созданным CABARC.EXE архивом, а вот инсталлятор его кушать не хочет.

H>Может кто нибудь сталкивался с такой проблемой?
H>Может кто знает еще какие либо небольшие утилиты или с++ код для работы с CAB?
H>Желательно что бы там была возможность замены фалов в существующем архиве.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.