我正在尝试创建一个自解压缩的exe。创造它不是问题。我面临的问题是
对于第二部分,最有可能的是,我必须有正确的提取路径。我正在使用来自DotNetZipLibrary的以下修改代码
zip.AddDirectory(DirectoryPath, "putty.exe");
zip.Comment = "This will be embedded into a self-extracting console-based exe";
SelfExtractorSaveOptions options = new SelfExtractorSaveOptions();
options.Flavor = SelfExtractorFlavor.ConsoleApplication;
options.DefaultExtractDirectory = "";
options.PostExtractCommandLine = "..\\putty.exe";
options.RemoveUnpackedFilesAfterExecute = true;
zip.SaveSelfExtractor("archive.exe", options);发布于 2011-10-04 15:30:55
我看到了两个问题。
首先,你要打电话
zip.AddDirectory(DirectoryPath, "putty.exe");AddDirectory()方法将一个目录添加到zip存档中。接受2个输入(您正在使用的输入)的重载用第二个参数来命名zip归档中的目录。因此,在进行此调用之后,您将在zip存档中拥有所有可以在您的文件系统上的DirectoryPath中找到的文件。压缩存档中使用的根目录名将是"putty.exe“。这至少是一个令人困惑的目录名称。我想你可能不是有意这么做的。
如果要向归档文件添加文件,请使用AddFile(),而不是使用AddDirectory()。
第二,根据文献资料,将运行后置提取命令。
...using提取目录作为进程的工作目录,
因此,如果您的zip在归档根目录中有一个名为"putty.exe“的文件,那么要运行的命令可能是"putty.exe",而不是"..\putty.exe”。
我建议在开发期间,您可以取出保存到自解压缩器中的部分,并将其替换为保存到常规zip文件中。检查您生成的zip文件,以确保它看起来像您希望它看起来。在正确的情况下,将SaveSelfExtractor()部分放回其中,您将得到一个正确的SFX。
https://stackoverflow.com/questions/7597130
复制相似问题