【问题标题】:How to enable SevenZipSFX class in SevenZipSharp source?如何在 SevenZipSharp 源代码中启用 SevenZipSFX 类?
【发布时间】:2013-04-17 17:17:47
【问题描述】:

我将非常感谢这里提到的如何在 SevenZipSharp 源中启用 SFX 类的分步指南:

How to create a SFX ZIP with SevenZipSharp?

...获得使用 SevenZipSharp 创建 SFX 文件的功能。

源文件:http://sevenzipsharp.codeplex.com/downloads/get/145910

【问题讨论】:

    标签: c# .net visual-studio-2010 visual-studio sevenzipsharp


    【解决方案1】:
    private void button1_Click(object sender, EventArgs e)
        {
            SevenZipCompressor comp = new SevenZipCompressor(@"c\Temp\");
            SevenZipCompressor.SetLibraryPath(@"C:\Users\i.cil\Desktop\7zip\SevenZip\7z.dll");
            comp.ArchiveFormat = OutArchiveFormat.SevenZip;
            comp.CompressionLevel = CompressionLevel.Ultra;
            comp.CompressionMethod = CompressionMethod.Lzma;
            comp.CompressionMode = CompressionMode.Create;
            comp.CompressFiles(@"c:\Temp\Temp.7z", @"C:\Temp\CentAppLOG13-Sep-13010004.bak");
    
            SfxModule mdl = SfxModule.Extended;
    
            SevenZipSfx sfx = new SevenZipSfx(mdl);
    
            sfx.ModuleFileName = @"C:\Users\i.cil\Desktop\7zip\SevenZip\sfx\7zxSD_LZMA.sfx";
            sfx.MakeSfx(@"c:\Temp\Temp.7z",
                        new Dictionary<string, string> 
                        { 
                            { "Title", "ATIG Platform" }, 
                            { "InstallPath", ProgramFilesx86() + "\\ATIG Platform" },
                            { "BeginPrompt", "Yükleme işlemi başlatılsın mı?" },
                            { "CancelPrompt", "Yükleme işlemi iptal edilecek?" },
                            { "OverwriteMode", "2" },
                            { "GUIMode", "1" },
                            { "ExtractDialogText", "Dosyalar ayıklanıyor" },
                            { "ExtractTitle", "Ayıklama İşlemi" },
                            { "ErrorTitle", "Hata!" }
                        }, 
                        @"c:\Temp\Temp.exe");
        }
    
        static string ProgramFilesx86()
        {
            if (8 == IntPtr.Size
                || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432"))))
            {
                return Environment.GetEnvironmentVariable("ProgramFiles(x86)");
            }
    
            return Environment.GetEnvironmentVariable("ProgramFiles");
        }
    

    【讨论】:

    • 您愿意在您的答案中发布代码解释吗?代码本身的描述性不是很强。
    • 启用 SFX 的方法是在源代码中在项目属性中添加一些我现在不记得在编译之前的参数,但我接受答案,因为如何设置的示例具有字典类型的 SFX 模块参数,在任何地方都找不到该信息!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多