Crear un archivo autoextraíble ejecutable en C#

Un archivo autoextraíble (SFX o SEA) es un tipo especial de archivo que contiene datos comprimidos junto con instrucciones ejecutables. Este archivo tiene la capacidad de extraer los archivos que contiene por sí mismo. Por lo tanto, no necesita ninguna aplicación extractora o descompresora específica para abrir archivos autoextraíbles. En este artículo, aprenderá a crear archivos autoextraíbles ejecutables en C# desde sus aplicaciones .NET.

C# .NET API para crear archivos autoextraíbles

Para crear archivos autoextraíbles, usaremos Aspose.ZIP for .NET. Es una API potente y rica en funciones que le permite automatizar las funciones de archivo en las aplicaciones .NET con bastante facilidad. Además, admite una variedad de formatos de archivo populares como ZIP, TAR, etc. Puede descargar la DLL de la API o instalarla usando NuGet.

PM> Install-Package Aspose.Zip 

Crear un archivo autoextraíble en C#

Comencemos a crear un archivo autoextraíble suponiendo que instaló Aspose.ZIP for .NET. Dado que será un archivo ejecutable, su extensión será .exe. Los siguientes son los pasos para crear un archivo autoextraíble ejecutable en C#.

El siguiente ejemplo de código muestra cómo crear un archivo autoextraíble ejecutable en .NET.

// Crear FileStream para guardar el archivo SFX
using (FileStream zipFile = File.Open("Archives/archive.exe", FileMode.Create))
{
    // Crear un nuevo archivo
    using (var archive = new Archive())
    {
        // Agregar archivos/carpetas para archivar
        archive.CreateEntry("SourceFile1.txt", "Archives/SourceFile1.txt");

        // Crear y configurar opciones para el archivo SFX
        var sfxOptions = new SelfExtractorOptions()
        {
            ExtractorTitle = "Extractor",
            CloseWindowOnExtraction = true, 
        };

        // Crear archivo SFX
        archive.Save(zipFile, new ArchiveSaveOptions() { SelfExtractorOptions = sfxOptions });
    }
}

Ejecución de archivos autoextraíbles mediante la línea de comandos

El archivo autoextraíble que hemos creado en la sección anterior se puede extraer haciendo doble clic en él. Sin embargo, si desea utilizar la línea de comandos, puede extraer el archivo con el siguiente comando.

C:>archive.exe -autoExtract 

Aquí, -autoExtract es la opción principal que le permite extraer el archivo. En caso de que el archivo esté protegido con contraseña, puede especificar la contraseña usando la opción -password, como se muestra en el siguiente comando.

C:>archive.exe -autoExtract -password:T0p$ecret

La lista completa de los comandos para trabajar con un archivo autoextraíble ejecutable se proporciona en este artículo.

Obtenga una licencia de API gratuita

Puede usar Aspose.ZIP for .NET sin limitaciones de evaluación al obtener una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a crear archivos autoextraíbles (SFX o SEA) en C#. Además, hemos discutido cómo extraer un archivo autoextraíble usando la línea de comando. Simplemente puede instalar Aspose.ZIP for .NET e incrustar el ejemplo de código proporcionado en sus aplicaciones .NET. Además, puede explorar más sobre Aspose.ZIP for .NET usando su documentación. Además, puede publicar sus consultas en nuestro foro.

Ver también