我一直在看SevenZipSharp创建一个自提取zip文件。项目页面说他们有一个特殊的类SevenZipSfx来做这个。然而,我已经搜索了对象资源管理器和0.64版本的文档,我找不到任何参考。
有没有人知道,如果类是缺失的,或者如果有一个不同的含义"特殊类",我错过了?
看起来Sfx类不是默认构建的。从Codeplex获取源代码(或检查主干代码),并将条件编译常量SFX
添加到项目设置中并重新构建。令人恼火的是,签名不在他们的源代码控制中,所以你必须禁用程序集的代码签名。
或者,如果这是一次性的SFX,那么您可以使用SevenZip SFX目录中的文件自己构建它。如果您查看一下SevenZipSfx源文件,您将看到它只是将从程序集资源中获取的其中一个文件添加到.7z存档文件中。
这段代码为我工作,在目录中打包文件:
string destination = @"c:my test.7z";
string pathToZip = @"C:Program Files7-Zip7z.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%工作