Как создать 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% работают