Что такое формат файла PCP?
.pcp-файл (файл свойств создания патча Windows Installer) - это входной файл для сборки, используемый Windows Installer для генерации программных патчей. .pcp-файлы содержат глобальные настройки для пакетов обновлений и служат основой для создания MSP-файлов патчей. Такие файлы потребляются цепочкой инструментов для сборки патчей - это не установочные файлы для конечных пользователей.
.pcp - это двоичный файл, хранящийся как OLE2 Compound File Binary (тот же контейнер, что и базы данных MSI), и может быть открыт и отредактирован с помощью программы Orca, входящей в Windows SDK. Патчи генерируются из .pcp-файлов с помощью Msimsp.exe, который вызывает PatchWiz.dll для сравнения целевого MSI с обновленным MSI и выдачи окончательного .msp-патча. Все эти инструменты поставляются как часть Windows Software Development Kit (Windows SDK). Создание патчей требует специальных знаний; однако установка полученного патча - это простой процесс.
Современные конвейеры сборки часто используют набор инструментов WiX (через Pyro.exe и файлы описания .wixmsp) как альтернативный подход к созданию, хотя Msimsp.exe с .pcp-файлом по-прежнему поддерживается в Windows Installer 3.x-5.x. Разработчики обычно начинают с пустого template.pcp, поставляемого с SDK.
Безопасность и защита
РИСК: LOWPCP - это база данных входных данных для сборки, а не установщик или исполняемый файл - открытие его в Orca для просмотра не повлияет на вашу систему. Он не устанавливает программное обеспечение, и конечным пользователям никогда не нужно его запускать. Единственное реальное предостережение - обычное для входных данных сборки: запускайте инструменты сборки патчей только на .pcp-файлах из источников, которым доверяете, так как полученный .msp изменит установленное приложение. В самом PCP нет автозапуска или макросов.
Детали формата
в двух словахПрограммы, открывающие файлы PCP
Технические подробности
глубокая спецификация| Структура файла | Реляционная база данных Windows Installer, хранящаяся внутри OLE2 Compound File Binary (CFBF) - тот же формат контейнера, что и у файлов `.msi` и `.msp` |
| Magic bytes (hex) | `D0 CF 11 E0 A1 B1 1A E1` по смещению 0 - подпись OLE2/CFBF, общая с `.msi` и `.msp`; файл определяется своей внутренней схемой таблицы PatchWiz, а не уникальным заголовком |
| Кодировка | Двоичная (little-endian) |
| Сжатие | Отсутствует в самой базе данных; ссылаемые пакеты исходного MSI могут содержать файловые данные, сжатые в CAB |
| Внутренние таблицы | `Properties`, `ImageFamilies`, `UpgradedImages`, `TargetImages`, `ExternalFiles`, `PatchMetadata` - они сообщают PatchWiz, как сравнить два образа MSI |
| Основной инструмент сборки | `Msimsp.exe` (Windows SDK) - читает `.pcp` и вызывает `PatchWiz.dll` для создания выходного пакета патча `.msp` |
| Инструменты редактирования | **Orca** (редактор баз данных MSI Windows SDK); InstEd; любой редактор таблиц MSI, поддерживающий OLE2 |
| Выходной артефакт | Пакет патча Windows Installer `.msp`, готовый к распространению и тихой установке конечным пользователем |
| Типичный размер файла | Несколько КБ до нескольких сотен КБ - хранит инструкции сборки и ссылки на файлы, а не данные содержимого |
| MIME-тип | `application/octet-stream` (специфический для формата MIME не зарегистрирован) |
| Связанная ОС | Windows (Windows Installer 1.x по 5.x) |
| Современная альтернатива | Создание патчей WiX через `Pyro.exe` и файлы описания `.wixmsp`, которые в значительной степени заменяют рабочий процесс `.pcp` + `Msimsp.exe` в текущих конвейерах сборки |
| Выпущен | circa 2000 (Windows Installer 1.x patch tooling - PatchWiz.dll) |
| Последняя версия | Stable across Windows Installer 3.x-5.x; tooling shipped in the Windows SDK |
| Спецификация | learn.microsoft.com |
Конвертации PCP
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах PCP.