我一直在寻找 SevenZipSharp 创建一个自解压 zip 文件。项目页面说他们有一个特殊的类 SevenZipSfx 可以做到这一点。但是,我已经搜索了 0.64 版的对象资源管理器和文档,但找不到任何对它的引用。
有谁知道这门课是否缺课,或者我缺课的“特殊课”是否有不同的含义?
我一直在寻找 SevenZipSharp 创建一个自解压 zip 文件。项目页面说他们有一个特殊的类 SevenZipSfx 可以做到这一点。但是,我已经搜索了 0.64 版的对象资源管理器和文档,但找不到任何对它的引用。
有谁知道这门课是否缺课,或者我缺课的“特殊课”是否有不同的含义?
看起来 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% 的工作