Как создать SFX ZIP с помощью SevenZipSharp? - PullRequest
2 голосов
/ 12 апреля 2011

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

Кто-нибудь знает, отсутствует ли класс или есть какое-то другое значение для «Особого класса», которое мне не хватает?

Ответы [ 2 ]

3 голосов
/ 12 апреля 2011

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

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

0 голосов
/ 05 января 2014

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

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% работы

...