我有一个由DotNetZip(xxx.exe文件)打包的自解压缩zip。在客户端机器上提取期间,使用tmp扩展生成打包的文件,如果用户关闭具有tmp扩展名的中间提取操作文件中的zip提取控制台窗口,则保留。然后在下一次提取时我得到了tmp扩展名已存在的文件的异常,这可以通过仅删除那些文件来克服。我也遇到了这个问题,不同的情况是我刚才描述的那个。 由于我是发布exe自解压文件,因此我没有在提取之前运行代码的权限来清理或捕获提取期间的失败异常。 任何想法我如何克服这个问题
一些代码:
private void CreateExtractableZip(string profile, string tragetPath)
{
//for first time installation
using (var zip = new ZipFile())
{
zip.AddItem(profile, "");
foreach (var file in _commonFiles)
{
zip.AddItem(file, "");
}
var sfxOptions = new SelfExtractorSaveOptions
{
Flavor = SelfExtractorFlavor.ConsoleApplication,
PostExtractCommandLine = InstallationManager + InstallationManagerCommand,
ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently,
ProductName = "My product",
Description = "My product Setup",
DefaultExtractDirectory = "%TEMP%",
RemoveUnpackedFilesAfterExecute = true,
};
zip.ParallelDeflateThreshold = -1;
zip.SaveSelfExtractor(tragetPath, sfxOptions);
SignExecutable(tragetPath);
}
}
谢谢,