C # /. NET: Создание CAB и добавление файлов к нему без внешней библиотеки - PullRequest
4 голосов
/ 21 декабря 2009

Мне известно, что аналогичный вопрос , но помеченный ответ содержит ссылку на внешнюю библиотеку, для которой требуется установить несколько зависимостей на компьютере пользователя.

Мне не нужно извлекать или что-то еще, например, перечислять файлы - мне нужно только добавить все содержимое папки в один кабинетный файл. Я знаю, что cabinet.dll существует в папке \ Windows \ System32, и я надеюсь, что есть простой способ взаимодействия с этой DLL для достижения того, что я пытаюсь сделать.

Возможно ли это сделать без внешней библиотеки? Если бы кто-нибудь мог указать мне правильное направление, я был бы вечно благодарен.

1 Ответ

9 голосов
/ 21 декабря 2009

Вы можете взглянуть на WiX , а точнее на Microsoft.Deployment.Compression.Cab сборку. Он имеет хороший API, который позволяет вам сделать это:

CabInfo cab = new CabInfo(@"c:\Work\some.cab"); 
cab.Pack(@"C:\Work\folder");

Это зависит от автономной сборки Microsoft.Deployment.Compression, поэтому вам потребуются только эти две сборки.

...