Как создать SFX ZIP с помощью SevenZipSharp?

Я смотрел на SevenZipSharp, чтобы создать самораспаковывающийся zip-файл. На странице проекта написано, что у них есть специальный класс SevenZipSfx, который делает это. Однако я искал объектный проводник и документацию для версии 0.64, и я не могу найти какую-либо ссылку на него.

Кто-нибудь знает, отсутствует ли класс или есть какое-то другое значение для "Особого класса", которое я пропускаю?

2 ответа

Решение

Похоже, класс Sfx не построен по умолчанию. Получить исходный код из Codeplex (или проверить код транка) и добавить константу условной компиляции SFX в настройках проекта и перестроить. Досадно, что подпись не входит в систему контроля версий, поэтому вам придется отключить подпись кода для сборки.

В качестве альтернативы, если это одноразовый SFX, вы можете создать его самостоятельно, используя файлы в каталоге SevenZip\sfx. Если вы посмотрите на файл SevenZipSfx, вы увидите, что он просто добавляет один из этих файлов, взятых из ресурсов сборки, в архив.7z.

Этот код работает для меня, упаковывает каталог с файлами в:

string destination = @"c:\my test.7z";
string pathToZip = @"C:\Program Files\7-Zip\7z.exe";
string directoryPath = @"c:\my test";

ProcessStartInfo p = new ProcessStartInfo();
p.FileName = pathToZip;
p.Arguments = string.Format("a -mx=9 \"{0}\" \"{1}\" -sfx", destination, directoryPath);

Process x = Process.Start(p);

99,9% работают

Другие вопросы по тегам